Author Topic: Retrocomputing, part 2  (Read 18345 times)

0 Members and 1 Guest are viewing this topic.

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Retrocomputing, part 2
« on: September 26, 2010, 02:52:11 pm »
Attached are the latest schematics and a
PCB layout with a test routing run.

Still have some work to do, I think I'm about 90% done.
We're missing bypass capacitors, some net connections,
and a few components.

Once I'm done, I'll get all the parts together, and then
print out the PCB at true size for a test fitting.  I can't
tell you how many times I've caught little problems
doing this.

Once that passes, I'll send the gerbers off to a board
house and build a prototype.  Hopefully it will work the
first time!


Scott
« Last Edit: September 26, 2010, 03:04:41 pm by slburris »
 

Offline FreeThinker

  • Frequent Contributor
  • **
  • Posts: 791
  • Country: england
  • Truth through Thought
Re: Retrocomputing, part 2
« Reply #1 on: September 29, 2010, 02:46:20 pm »
I learned (to a basic level) machine code on a zx80, Yes it was possible ;D. You have stated that you will use a soft core t80 which I assume is an emulator.Will it fully support the code set of the Z80 or only the "Official" codes?.As I remember the Z80 had a set of "sercret" opcodes that were not supported (actually did not work as expected) but were used a lot in games software and "Protection systems" because normal disassemblers would not handle them correctly.Probably being a bit anal bringing it up but I feel that it should work as originally built warts and all.Just a thought :D.
PS. As to the wall wart problem, have you considered a bridge rectifier after the jack? Then the board would work no matter what polarity the tip is. 
Machines were mice and Men were lions once upon a time, but now that it's the opposite it's twice upon a time.
MOONDOG
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #2 on: September 29, 2010, 03:23:20 pm »
I learned (to a basic level) machine code on a zx80, Yes it was possible ;D. You have stated that you will use a soft core t80 which I assume is an emulator.Will it fully support the code set of the Z80 or only the "Official" codes?.As I remember the Z80 had a set of "sercret" opcodes that were not supported (actually did not work as expected) but were used a lot in games software and "Protection systems" because normal disassemblers would not handle them correctly.Probably being a bit anal bringing it up but I feel that it should work as originally built warts and all.Just a thought :D.
PS. As to the wall wart problem, have you considered a bridge rectifier after the jack? Then the board would work no matter what polarity the tip is. 

I'm working on two separate designs.  The "classic" design is the schematic a couple posts ago
and that uses a genuine Z80.

The "FPGA" design uses the T80 core from opencores:

http://opencores.org/project,t80

It supports all undocumented Z80 instructions and is heavily used by
the retroarcade community. See for example:

http://www.fpgaarcade.com/platforms.htm

So I have pretty high confidence that it works!

Scott
 

Offline FreeThinker

  • Frequent Contributor
  • **
  • Posts: 791
  • Country: england
  • Truth through Thought
Re: Retrocomputing, part 2
« Reply #3 on: September 29, 2010, 04:13:12 pm »
I learned (to a basic level) machine code on a zx80, Yes it was possible ;D. You have stated that you will use a soft core t80 which I assume is an emulator.Will it fully support the code set of the Z80 or only the "Official" codes?.As I remember the Z80 had a set of "sercret" opcodes that were not supported (actually did not work as expected) but were used a lot in games software and "Protection systems" because normal disassemblers would not handle them correctly.Probably being a bit anal bringing it up but I feel that it should work as originally built warts and all.Just a thought :D.
PS. As to the wall wart problem, have you considered a bridge rectifier after the jack? Then the board would work no matter what polarity the tip is. 

I'm working on two separate designs.  The "classic" design is the schematic a couple posts ago
and that uses a genuine Z80.

The "FPGA" design uses the T80 core from opencores:

http://opencores.org/project,t80

It supports all undocumented Z80 instructions and is heavily used by
the retroarcade community. See for example:

http://www.fpgaarcade.com/platforms.htm

So I have pretty high confidence that it works!

Scott


How cool is that! :o. Not just me then Lol.
Machines were mice and Men were lions once upon a time, but now that it's the opposite it's twice upon a time.
MOONDOG
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #4 on: October 04, 2010, 01:55:53 am »
I've placed an order with Digikey for the parts I don't have in stock, so
I should get them Wed or Thur I think.

So next weekend I should be ready to do the test fitting of parts to
a printout of the board.

While I wait for parts, it's time to get back to the FPGA design.

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #5 on: October 08, 2010, 04:08:41 pm »
Woohoo, my Digikey order has arrived, so I'm going to try to
finish up the schematic and PCB this weekend so I can do
a test layout on paper with the components.

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #6 on: October 10, 2010, 04:26:36 pm »
The board is going to look something like the attached test layout render.

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #7 on: October 12, 2010, 03:06:44 pm »
Have I mentioned yet that I hate autorouters?  I've been screaming at the Eagle
autorouter because it's making stupid routing decisions.  Come on, can't this thing
see this nicely aligned data bus and just connect everything up there first before
messing it up with other traces?  No, it can't!

I've even tried the freerouting.net autorouter, which I think generally does a better
job than Eagle's built in router.  Still, neither autorouter gets to 100% .

It's only a 4Mhz design, so layout really isn't critical, and there are zillions of connections,
so I don't want to route this by hand.

Next up, I'm going to try some old tricks, namely writing a script file that autoroutes
the "obvious stuff" first, then let's loose on the whole board.  If that fails, I may have to
at least partially hand route this board.

Scott
 

Offline Zad

  • Super Contributor
  • ***
  • Posts: 1013
  • Country: gb
    • Digital Wizardry, Analogue Alchemy, Software Sorcery
Re: Retrocomputing, part 2
« Reply #8 on: October 12, 2010, 07:07:00 pm »
There is only one way to learn really. Go and do it. With the time you spent looking for alternative autorouters and shuffling around horrible looking routes you could have done it by hand and ended up with a decent looking board that you know inside out. Get the power buses and data lines in and take it from there.

Offline TechGuy

  • Regular Contributor
  • *
  • Posts: 79
Re: Retrocomputing, part 2
« Reply #9 on: October 12, 2010, 10:15:20 pm »
Next up, I'm going to try some old tricks, namely writing a script file that autoroutes
the "obvious stuff" first, then let's loose on the whole board.  If that fails, I may have to
at least partially hand route this board.


Route in groups, don't route the entire board at once (assuming eagle has a option to route a selected group of components - I use Diptrace). Then fix the problem ones manually and do another group, fix the problem traces, move on to another group. Not perfect but better than other options.
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #10 on: October 20, 2010, 03:35:20 pm »
OK, we've reached the PCB stage of things. 

I'm starting to shop around board makers for a roughly 25 sq in board, qty 25, 2 layer.
This is too large for some of the real deals, like ITead Studio, or DorkbotPDX, or BatchPCB,
so time to quote some of the standard places I've used before.

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #11 on: October 21, 2010, 01:49:35 pm »
Here are the latest schematics, at least until I find another error :-)

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #12 on: October 23, 2010, 04:52:49 am »
Oh bah, I realized I made two part changes fairly late in this process
and so the SD card connector has the two side holddowns in a different
spot than the one I found in the Eagle library.  Plus I ordered a 5 pin mini USB-B
connector instead of a 4 pin which is on the PCB.

Back to more corrections, reroute, stare at it some more, then send it off
to be fabbed.  I think this board is going over to pcbfabexpress.com

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #13 on: November 02, 2010, 03:47:44 pm »
I added headers for the address/data/control buses for a logic analyzer
connection, just in case I need it.  And now I'm having a hard time getting
everything re-routed....

Plus I discovered I made a mistake in the PCB symbol design for the compact
flash socket.  I thought I'd be clever and modify an existing design rather
than start from scratch, but I discovered that I computed some coordinates
incorrectly (measured from where the solder mask ended rather than the
pad itself) and a few things are off by a fraction of a mm.  So off to fix that
symbol.  Have I said how much I hate creating new parts in Eagle?

Then, I'll stop making changes and just send the boards off to be manufactured.

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #14 on: November 13, 2010, 02:05:48 pm »
OK, I ordered 5 boards from pcbfabexpress.com yesterday morning and they
let me know in the afternoon that my uploads passed their design rule check
so they are in process.  I'm not in a hurry, so they are being made on a 10 day
turn.

The boards are rectangular, about 30 square inches.  It sure takes a lot of chips
to get anything done using those big Zilog chips of the 80's!

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #15 on: November 13, 2010, 02:26:07 pm »
Here are the latest schematics and an image of the board.

No, I didn't route the board by hand.  At 4 Mhz, I figure the
circuit will work in spite of any craziness done by the autorouter.
I did wirewrap a Z80 circuit in the 80's and it worked just fine.

That being said, I didn't use the Eagle autorouter to do this
board.....

Scott
 

Offline RayJones

  • Frequent Contributor
  • **
  • Posts: 490
    • Personal Website
Re: Retrocomputing, part 2
« Reply #16 on: November 18, 2010, 07:48:37 am »
LOL, a true retro project would be using the ubiquitous 1488/1489 RS232 interface chips and the associated +- 12V rails ;)

Nah, only joking. This is the stuff I cut my teeth on, and it is good clean fun and amazingly capable.
More importantly they boot in seconds!
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #17 on: November 18, 2010, 02:45:46 pm »
LOL, a true retro project would be using the ubiquitous 1488/1489 RS232 interface chips and the associated +- 12V rails ;)

Nah, only joking. This is the stuff I cut my teeth on, and it is good clean fun and amazingly capable.
More importantly they boot in seconds!

Yeah, and a 40lb transformer with multiple windings to provide the power.

And none of this DB9 stuff, RS232 uses DB25's, darn it! (yes, I know
it's really called DE9 and DE25 but nobody seems to use those terms).

And 8" floppy disk drives....

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #18 on: November 18, 2010, 02:53:38 pm »
And now I'm on day 4 of my 10 day turn for the prototype boards.

Did I just order another set of green coasters?  Or will the boards work?
Or at least be able to be fixed by cutting traces and using jumpers.

Stay tuned!

Scott

 

Offline baljemmett

  • Supporter
  • ****
  • Posts: 665
  • Country: gb
Re: Retrocomputing, part 2
« Reply #19 on: November 18, 2010, 03:19:12 pm »
And none of this DB9 stuff, RS232 uses DB25's, darn it! (yes, I know
it's really called DE9 and DE25 but nobody seems to use those terms).

Nah, DB25 is right, but what's commonly called DB9 is really a DE9.  The letter indicates the size of the shell; hence VGA uses a DE15 connector, since it's the same size shell but with more pins (not to be confused with DA15 for Ethernet AUI connectors!).  All good fun, and probably why lots of people just call them "9-pin D" etc.

Looking forward to seeing the boards when they arrive!  Have you decided yet how you're going to present the storage to CP/M?  I seem to recall you were thinking about partitioning schemes a while back.
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #20 on: November 18, 2010, 03:42:04 pm »
Ah, there's misinformation about DB vs DE then:

http://en.kioskea.net/contents/elec/connecteur-prise-db25.php3

I haven't really thought more yet on how the CF card is going to
work.

My most immediate goal is to get an EPROM burned that initializes the
serial port and prints "Hello World!".  Then I'll build a little monitor
program that can read a bootstrap off the CF card.

I think I'm going to need a CP/M system to build the BIOS and BDOS
for the CF card.  I'm a little vague on the details of how this hangs
togther, since it's been 30 years when I last customized a CP/M system.
Something about using SYSGEN to write a diskette that you can boot from?

What I think I'll do is bring up an Altair z80 simulator running CP/M
and use that to build the right images for my system:

http://simh.trailing-edge.com/
http://www.schorn.ch/cpm/intro.php

It will be good practice for the next project, the one I originally
proposed, which was to use a soft core Z80 in an FPGA talking to
a VGA connector, mouse, and keyboard.  For that design, there will
be more memory, as my intention is to let you boot either CP/M or
MP/M.

And then of course as I was rummaging through my chip collection,
I came across some 68000 series chips.  I have 68000's, 68020's,
and a 68040.  If I haven't burned out on this stuff, maybe I'll do some
retro 68000 thing. 

Scott
 

Offline RayJones

  • Frequent Contributor
  • **
  • Posts: 490
    • Personal Website
Re: Retrocomputing, part 2
« Reply #21 on: November 18, 2010, 08:31:15 pm »
LOL, a true retro project would be using the ubiquitous 1488/1489 RS232 interface chips and the associated +- 12V rails ;)

Nah, only joking. This is the stuff I cut my teeth on, and it is good clean fun and amazingly capable.
More importantly they boot in seconds!

Yeah, and a 40lb transformer with multiple windings to provide the power.

And none of this DB9 stuff, RS232 uses DB25's, darn it! (yes, I know
it's really called DE9 and DE25 but nobody seems to use those terms).

And 8" floppy disk drives....

Scott


Let's not forget that having a 10MB ST-506 HDD would be *very* extravagent
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #22 on: December 01, 2010, 04:51:59 am »
The PCBs have shipped!  Picked up this evening from Sunnyvale, CA.
Tracking says will be delivered by Dec 3 4:30pm.  Hmm, they just have
to move a couple hundred miles down the state into southern California --
even if Fedex drives them down by bicycle, it shouldn't take 3 days!

Scott
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #23 on: December 03, 2010, 11:51:07 pm »
The PCBs are here!

I'll try to post a high resolution picture of one in a bit.

Scott
« Last Edit: December 04, 2010, 12:15:22 am by slburris »
 

Offline slburrisTopic starter

  • Frequent Contributor
  • **
  • Posts: 551
  • Country: us
Re: Retrocomputing, part 2
« Reply #24 on: December 04, 2010, 06:48:48 am »
The build has begun!

First up, I put together the switching power supply and immediately hit
a small problem.  For some reason, the outline of the input jack is incorrect
and crowds the polyfuse and the first Schottky diode.  Not enough to be
a showstopper, but if you look closely I accidentally touched the jack
with the soldering iron and melted it slightly.

Second problem was with the National Semiconductor switcher chip.
I used a pinout with a staggered pin arrangement.  But I only have an
inline arrangement type in my parts box (about a hundred from an Ebay
purchase).  OK, no problem, just bend the pins with a long nose pliers.

I also didn't use the exact values of the capacitors I specified on the
schematic.  I had a bunch of 100uf caps, so I just used three of those.
I figure the exact values aren't too critical, and going bigger shouldn't
hurt anything.

The LM2575 is only a 52Khz switcher, and the datasheet seems to
say you can use regular electrolytics and not need to get into the
low ESR tantalum or ceramic types.  Yeah, probably at that switching
speed nothing's too critical.

So I built the power supply first because when I have a new board,
I like to verify that it's going to output the proper voltage *before*
I put a bunch of rare or expensive ICs on the board.  It's probably not really
necessary for this board because I have high confidence in this
Simple Switcher design and there's very little to go wrong.  But
I tend to be paranoid about letting the magic smoke out.

Connected up a 12v unregulated wall wart, fired up the DMM,
and immediately remembered why I shouldn't work on this stuff
late at night.  I was using my UNI-T meter instead of a Fluke, and I
had the leads plugged in to measure current, although the meter
was set to measure voltage.  I measured the 5 volt output
and got nothing.  Hmm, puzzled I put the probe on the polyfuse
and got a small spark.

Luckily with a switcher that is short circuit protected and a polyfuse
to handle the raw input voltage, nothing bad happened.  Fixed my
test leads and sure enough, 5 volts out!

Now in looking at the PCB more closely, I spotted another mistake.
The CompactFlash card socket has two tabs near where the card is
inserted.  The tabs are supposed to be soldered to the PCB.
But when I made the part in Eagle, I forgot to block out the solder
mask over the pad!  Oh well, I can scrape the solder mask off with
an X-Acto knife I guess.

So where am I?  I've installed the CPU, the 4Mhz master clock
oscillator, and some sockets.  I've put my Rigol on the clock and
verified we're getting a good rail to rail 5V CMOS swing on the
waveform, and the Rigol says it's 4Mhz to boot.

So far so good, and I haven't yet had to cut any traces.

Scott
« Last Edit: December 04, 2010, 06:50:38 am by slburris »
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf