Author Topic: Z80 Single (Perf)Board Computer  (Read 21673 times)

0 Members and 1 Guest are viewing this topic.

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Z80 Single (Perf)Board Computer
« Reply #25 on: April 02, 2017, 05:53:35 am »
That is pretty tight. Are you sure you will be able to connect it all?
Other than that, very nice.  :-+
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Offline grumpydocTopic starter

  • Super Contributor
  • ***
  • Posts: 2905
  • Country: gb
Re: Z80 Single (Perf)Board Computer
« Reply #26 on: April 02, 2017, 08:05:38 am »
That is pretty tight. Are you sure you will be able to connect it all?
Other than that, very nice.  :-+
Yes, every time I look at the board and the drawing 100x160mm starts to look very small :) I've managed this sort of density on perfboard before but this is definitely the most complex that I have tried.

In fact this is exactly why I have taken the trouble to draw the layout rather than just wing it from a schematic - or occasionally just make it all up as I go along.

I think power and decoupling will be the challenge, the intent is to route most of the power on the top of the board with reasonably sturdy hook-up. I have some 22AWG stuff that I can use, at 1.2mm external diameter I can get two strands between the rows of IC's; the slight undercut of a turned pin socket helps here.

If that does prove too chunky I have some 30AWG wire wrap wire,  that might be slightly thin for power but I'm only anticipating the board drawing half an amp or so.

I did consider using sockets which incorporate decoupling but those are a bit on the expensive side. I have some 32 pin sockets with built in caps (for the SRAM) but they are a different style so I'm 50/50 on using them.

After that I have some 0.2mm (32AWG approx) and 0.315 (about 28AWG) "self-fluxing" wire - I'm not sure what the coating is but similar to this stuff. I bought the reels years ago and, despite a good few projects, still have miles of it left.

The nice thing is that you can take a length and run it along all the points that a given signal needs to connect to and then solder them all in one go. A dab of superglue helps keep longer runs neat and I could probably do this board and not have the wiring be above the IC socket pins on the back of the board.

 

Offline grumpydocTopic starter

  • Super Contributor
  • ***
  • Posts: 2905
  • Country: gb
Re: Z80 Single (Perf)Board Computer
« Reply #27 on: April 02, 2017, 12:34:23 pm »
I hope you don't end up with so much tightly bunched up wire that it just gets in the way and/or makes repair or modification difficult. Why can't you get a larger board and make life easier? If it is because you already have it, I get that.
Yes, it's pretty much because I happened to have it, but also because it's quite a nice size for the project.

For rework the wire can just be cut off by the pin and a new one laid.
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Z80 Single (Perf)Board Computer
« Reply #28 on: April 02, 2017, 02:02:34 pm »
Small decoupling caps (100n) should fit inside / under DIP IC sockets.

Perhaps you could take the single-step circuit and put it on a separate small board and plug it in only when you need to debug?
You just need a small header for it to connect to. That may free up a couple of ICs worth of space.
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Offline danmcb

  • Regular Contributor
  • *
  • Posts: 128
  • Country: be
  • if it ain't bust, I didn't test it yet.
    • McBee Audio Labs
Re: Z80 Single (Perf)Board Computer
« Reply #29 on: April 02, 2017, 02:39:22 pm »
haha, respect! you must like pain though ;-)

I would wire wrap this  myself - if I *had* to do it this way.

Or, honestly - maybe just go straight to PCB and save an absolute crap load of time (only to spend it on something else after of course).

You could use free diptrace and modularise it maybe? I didn't study the design, but core CPU and memory on one card, then a ribbon to an IO card maybe? it would save you a world of pain, donny.
 

Offline grumpydocTopic starter

  • Super Contributor
  • ***
  • Posts: 2905
  • Country: gb
Re: Z80 Single (Perf)Board Computer
« Reply #30 on: April 02, 2017, 04:41:39 pm »
Small decoupling caps (100n) should fit inside / under DIP IC sockets.
Yes, i considered doing that but changed my mind when I saw the price of the sockets with a cap incorporated - I don't have any axial lead 100nF caps in the parts bin to check the idea but I think that there would be enough space by the pin shafts of a turned pin socket to carefully wrap the leads around on the diagonal and then solder it to the corner pins. I might try that if I need to go tighter on perfboard any time.

What I do have in the parts bin is a load of rectangular 220nF caps.........

Quote
Perhaps you could take the single-step circuit and put it on a separate small board and plug it in only when you need to debug?
You just need a small header for it to connect to. That may free up a couple of ICs worth of space.

I'm comfortable with the existing layout for now, hopefully that will not prove to be over-confidence.  :)

haha, respect! you must like pain though ;-)

I would wire wrap this  myself - if I *had* to do it this way.

Or, honestly - maybe just go straight to PCB and save an absolute crap load of time (only to spend it on something else after of course).

You could use free diptrace and modularise it maybe? I didn't study the design, but core CPU and memory on one card, then a ribbon to an IO card maybe? it would save you a world of pain, donny.

I agree that doing it on a PCB would be much nicer, for one thing I could use SOIC packages for the glue logic which would save a load of space.

I'd quite like to validate the design before trying to design a PCB.

Having built cards this way before it is not too painful - no harder than wire-wrap and you don't end up with enormously long pins sticking out of the bottom. Also I could choose not to bother socketing the TTL if I were very confident that it would work first time.

Would doing a PCB design save me time? Not sure. I'd have to layout the parts, that bit does not go away, then I'd have to route it which might well take longer. While I try to lay the wire moderately neatly you can just do it point to point "rats nest" style without worrying about crossings.

If I were to want to do a 2nd or a 3rd one exactly the same then  designing a PCB would win hands down, obviously.

Would I want to do another - not sure. If the card actually works (and I'm not, TBH, sure about the memory timing[1], nor the CF card timing[2]) maybe it would be worth it just for the practice in designing and getting PCBs made up.

[1] There might be too much gate delay through the adders, especially as I used two cascaded, even with a wait state given that I am using 55ns RAM. The ROM should be OK as its addresses don't go through any mapping so I can hopefully write code to check the RAM.

[2] At 20MHz the length of IORD or IOWR pulses (about 125ns) will be significantly shorter than specified for PIO mode 0 timing (165ns), especially in 8 bit mode (290ns) but I don't think that this matters. I can't see that the card "switches" modes, they just have a fastest mode and thet is what the timing is. If I plug in a card which only supports PIO mode 0, 1 or 2 then it probably won't work. Otherwise it should be OK. Simples :)
« Last Edit: April 08, 2017, 10:08:17 pm by grumpydoc »
 

Offline grumpydocTopic starter

  • Super Contributor
  • ***
  • Posts: 2905
  • Country: gb
Re: Z80 Single (Perf)Board Computer
« Reply #31 on: April 02, 2017, 05:41:55 pm »
Small decoupling caps (100n) should fit inside / under DIP IC sockets.
I don't have any axial lead 100nF caps in the parts bin to check the idea....

However, what I do have is some 100nF MLCC's in 1206.



Fiddly, but very, very tempting.

These were the 32 pin ones that I found - seem to have two tubes of them. Not sure why - I suspect that I acquired them as part of a junk lot.



Finally I found these interesting beasties hiding under a 32kx8 RAM chip in a spare board (a 68C11 based industrial controller)



Seems I have 28 and 20 pin variants. I can't find any data on them - they measure about 70nF on the corner pins corresponding to 14 and 28. However there's a chance that the boards they came out of still work so I am reluctant to recycle them for the moment.
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Z80 Single (Perf)Board Computer
« Reply #32 on: April 03, 2017, 05:08:01 am »
Hehehe,  nice tinkering.
The others - never seen those before.
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Offline danmcb

  • Regular Contributor
  • *
  • Posts: 128
  • Country: be
  • if it ain't bust, I didn't test it yet.
    • McBee Audio Labs
Re: Z80 Single (Perf)Board Computer
« Reply #33 on: April 03, 2017, 07:02:17 am »
Yes, fair point - it does take time to layout a board.

By the way, if you are interested in GAL's - they are not that hard. I am actually revising a design that has been in service for 17 years at the moment where I used one. I worked out the fuse map on paper, and then wrote the JED file by hand in a text editor. ATMEL still make the ATF22V10, ATF16V8 and others. Not sure where to get a programmer now, but probably you can find something inexpensive or even makeable  online.
 

Offline grumpydocTopic starter

  • Super Contributor
  • ***
  • Posts: 2905
  • Country: gb
Re: Z80 Single (Perf)Board Computer
« Reply #34 on: April 03, 2017, 07:17:34 am »
The others - never seen those before.
Nor I. Once I realised that the CC is followed by an 'I' not a '1', I found a dead eBay auction which confirms that they are supposed to be 70nf and made by Circuit Components Inc. A bit more googling and I finally found some data here http://www.parttarget.com/5910-01-272-2276_5910012722276_UQ-28-07.html/-F9811F01-896C-4F7F-8B56-A39268D08095

Not sure where to get a programmer now, but probably you can find something inexpensive or even makeable  online.

There's a design here - http://elm-chan.org/works/pgal/report_e.html

I thought, if the board works, I could build one (programmer, that is) to hang of the parallel I/O.
« Last Edit: April 08, 2017, 09:31:49 pm by grumpydoc »
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Z80 Single (Perf)Board Computer
« Reply #35 on: April 03, 2017, 07:39:25 am »
I could program my GALs with the MiniPro TL866.

Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Offline grumpydocTopic starter

  • Super Contributor
  • ***
  • Posts: 2905
  • Country: gb
Re: Z80 Single (Perf)Board Computer
« Reply #36 on: April 03, 2017, 08:56:05 am »
I could program my GALs with the MiniPro TL866.
In theory I can program them with my Dataman S4 but I don't have the necessary adapter which costs about 4x what it would cost to build one.

Sadly Dataman don't publish the circuit

Maybe I will keep an eye out on eBay.
 

Offline technix

  • Super Contributor
  • ***
  • Posts: 3507
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: Z80 Single (Perf)Board Computer
« Reply #37 on: April 03, 2017, 03:54:49 pm »
I could program my GALs with the MiniPro TL866.
In theory I can program them with my Dataman S4 but I don't have the necessary adapter which costs about 4x what it would cost to build one.

Sadly Dataman don't publish the circuit

Maybe I will keep an eye out on eBay.
Since you are okay with PLCC, maybe try MAX7000 series CPLD from Altera. Those are 5V Flash-based parts and they can be reprogrammed in circuit using JTAG and a USB Blaster.
 

Offline spudboy488

  • Regular Contributor
  • *
  • Posts: 136
Re: Z80 Single (Perf)Board Computer
« Reply #38 on: April 04, 2017, 11:30:14 am »
The MAX3000 series are also 5V tolerant and less expensive. I use them all the time for glue logic to save board space or if I'm not 100% sure how the circuit will end up functioning. It's like having programmable copper.
 

Offline grumpydocTopic starter

  • Super Contributor
  • ***
  • Posts: 2905
  • Country: gb
Re: Z80 Single (Perf)Board Computer
« Reply #39 on: April 08, 2017, 09:59:56 pm »
That is pretty tight. Are you sure you will be able to connect it all?
Other than that, very nice.  :-+
Starting to look like everything will go on the board OK



Current plan, the layout has needed a few more minor tweaks.



+5V routing added and gate connections as it makes it easier to wire it up. I just print out the layout A4 sized and work from that.

Hmmm, just realised I don't have +5V on the right edge of the board for the TTL level serial port and the parallel port connectors. Could be tricky to get it across.
« Last Edit: April 08, 2017, 10:19:23 pm by grumpydoc »
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Z80 Single (Perf)Board Computer
« Reply #40 on: April 09, 2017, 08:17:50 am »
Looks nice. Are you going to put all the wires on top (that is what I usually do) or just the plumbing?

Hmmm, just realised I don't have +5V on the right edge of the board for the TTL level serial port and the parallel port connectors. Could be tricky to get it across.

There is still space on the top of the connector to put in extra pins... (fill out to the nearest standard number of pins ;-).
Or an extra screw terminal (two) just below the RS232 connector...?

[2c]

Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Offline grumpydocTopic starter

  • Super Contributor
  • ***
  • Posts: 2905
  • Country: gb
Re: Z80 Single (Perf)Board Computer
« Reply #41 on: April 09, 2017, 09:44:20 am »
Looks nice. Are you going to put all the wires on top (that is what I usually do) or just the plumbing?
No, just the power plumbing, then the solder side is clear for the signal runs.

Quote
There is still space on the top of the connector to put in extra pins... (fill out to the nearest standard number of pins ;-).
Or an extra screw terminal (two) just below the RS232 connector...?

[2c]
I have it sorted, If I run the ground line that connects to the MAX232 capacitors under the board an extra couple of pads (dotted lines run solder side, in case it wasn't obvious) I will have room to tap of the +5V going to the MAX232 past the end of the right most quad OR gate and then run it along the set of holes parallel to the 0V run.

I'm actually considering trimming back the parallel port connector to 20 pins, I have loads of 20way ribbon cables already made up with IDC headers but no 24-way ones which I will have to buy.

I originally wanted to put in a right angle double row female header but there isn't quite room, that way if I a matching right angle header on any expansion board it would just plug in.
 

Offline SeanB

  • Super Contributor
  • ***
  • Posts: 16272
  • Country: za
Re: Z80 Single (Perf)Board Computer
« Reply #42 on: April 09, 2017, 03:16:23 pm »
I remember those under dip capacitors, they were designed to fit either into the board before the chip and be soldered with it, or you could insert it into a folded socket before inserting the chip. The socket with a built in decoupler was also common, often as a retrofit, or used on DRAM blocks.  you also got long strips with the power pins on there as pins, soldered into the board top and bottom, and then your chips were arranged on 8 hole spacing all the way down, so you could put all SSI TTL in there on a double sided board, and have only a power and ground feed at the one end of the board while the power strip provided both power and ground, along with distributed decoupling for the chips. You just needed a 100uF 10V electrolytic at the board power input for bulk capacitance. Expensive, but was common on a lot of military stuff as it made design a lot easier if you needed more than 30 SSI packages, and did not want to make an expensive 4 layer board. Was also very common on wire wrapped boards, got rid of a lot of the ground bounce issues there.
 

Offline grumpydocTopic starter

  • Super Contributor
  • ***
  • Posts: 2905
  • Country: gb
Re: Z80 Single (Perf)Board Computer
« Reply #43 on: April 12, 2017, 07:17:58 am »
OK, well I had hoped to have the sockets placed and all the +5V "plumbing" done before the Easter break but, not quite.

Construction is shaping up nicely though



I'm still in two minds whether to get a right angle header with longer pins and flip the CF card 180o so that it sits over the PIA & SIO which would be neater.

The small PCB to the right is a USB serial adapter.
« Last Edit: April 12, 2017, 10:22:39 am by grumpydoc »
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 988
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Z80 Single (Perf)Board Computer
« Reply #44 on: April 12, 2017, 07:34:06 am »
Looks good!

I'm still in two minds whether to get a right angle header with longer pins and filp the CF car 180o so that it sits over the PIA & SIO which would be neater.

I would first get it working. The way it is now gives you access to the chips for debugging/probing.
Just try to target each pin with only one wire (on the bottom side I gathered) and it'll be easy enough to replace later on.
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Offline grumpydocTopic starter

  • Super Contributor
  • ***
  • Posts: 2905
  • Country: gb
Re: Z80 Single (Perf)Board Computer
« Reply #45 on: April 12, 2017, 08:13:20 am »
Looks good!
Thanks :)

Quote
I'm still in two minds whether to get a right angle header with longer pins and filp the CF car 180o so that it sits over the PIA & SIO which would be neater.
I would first get it working. The way it is now gives you access to the chips for debugging/probing.
Just try to target each pin with only one wire (on the bottom side I gathered) and it'll be easy enough to replace later on.
I've more or less decided to flip it around, it looks much uglier than I expected with the CF card sticking out from the board, and it fits very nicely the other way around. If needed I can always put the CF card on a short length of 40-way ribbon cable - the signals are buffered so that shouldn't fry the CPU data & address lines with too much capacitance.

I have to put this aside for a couple of weeks over Easter but I can use the time to order some more headers.
 

Offline nockieboy

  • Super Contributor
  • ***
  • Posts: 1812
  • Country: england
Re: Z80 Single (Perf)Board Computer
« Reply #46 on: May 12, 2018, 08:49:50 pm »
I know it's been more than a year grumpy, but are there any updates on your project at all?

I've been pretty quiet on EEVblog recently, but that's mostly because my hardware is all working nicely now and I've been learning Z80 assembler and writing BIOS's and such for CP/M 3 on my system, alongside listening to old classics playing on the AY-3-8910 PSG, which pumps out chiptunes quite nicely now!  ;D
 

Offline grumpydocTopic starter

  • Super Contributor
  • ***
  • Posts: 2905
  • Country: gb
Re: Z80 Single (Perf)Board Computer
« Reply #47 on: May 12, 2018, 09:56:47 pm »
I know it's been more than a year grumpy, but are there any updates on your project at all?
It's stalled, as has just about everything electronics-wise for lack of time.

It's still on the bench though, reminding me I need to get on with making some progress every time I look at it :(
 

Offline kde

  • Contributor
  • Posts: 14
  • Country: ru
Re: Z80 Single (Perf)Board Computer
« Reply #48 on: September 19, 2019, 07:04:00 pm »
Hi! I see there were no new posts within more than a year here. grumpydoc, how is your project going? Were you able to achieve 20 MHz with Z80?

I was a big fan of Z80 in the nineties, so I had constructed a few different devices with it. I've checked your original design and find out the following:

- Why do you check the MREQ line twice to access memory? You check it on the memory CS line and on the MRD/MWR lines. You just need to use it for RAM/ROM CS line only and directly connect CPU RD to the memory OE line and CPU WR to the memory WE line.

- If you look the AS7C4096A datasheet (e.g. the 10-ns version), you'll see that 10 ns delay is the address-to-output delay, i.e. it is the time that passes from the moment when you change the address line until the moment when data are available on chip's outputs. And the OE access time is just one half of that, i.e. 5 ns! And this is true for all other static RAM/ROM chips I know. E.g. the old good 200 ns 2764 has 200 ns address-to-output or CS-to-output delay and only 75 ns OE-to-output delay. And if you look the Z80 datasheet, you'll see that address lines are set a little bit before MREQ and RD. So thus you get a few extra ns for your memory to be read. This is also true for your SST39SF010A-45 - the timings are 45 and 30 ns correspondingly. But you may consider adjusting your schematics so you have ROM CS always low (active) and just add one more logic gate to its OE pin. Or you may connect your ROMEN pin directly to ROM CS and do not use it anywhere else.

- You do not need to provide the data to the bus 12 ns before the T3 rising clock edge - Z80 has internal delays, so it's OK to provide the data right at the rising edge. Thus the 45-ns ROM should be working fine with 20 MHz Z80. A long time ago I tried to overclock Z80 to understand how fast can I make it go. I had 6 MHz original Zylog Z80B with an ordinary 2764 ROM chip (I do not remember now which version I had, probably it was the 200 ns one) on my test board and I was able to clock it from 11 or 12 MHz! And there was no any special action taken (like the CS trick I described above) to speed it up. So I'm pretty sure that 45-ns ROM will work OK with 20 MHz Z80 with no additional wait states.

Also if you think your ROM is still not fast enough, you can try using the M1 line which is asserted a little bit earlier.
« Last Edit: September 20, 2019, 08:12:05 pm by kde »
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf