RetroBrew Computers Forum
Discussion forum for the RetroBrew Computers community.

Home » RBC Forums » General Discussion » Z80 Multi Board Computer (Z80 modular backplane computer)
Z80 Multi Board Computer [message #8396] Tue, 23 March 2021 04:28 Go to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
I am revisiting the original Z80 SBC which has evolved into the SBC V2-005 over several years. The goal is to make it modular using lower cost PCBs and an inexpensive backplane. Also to ease the constraints of the original SBC (from 2006) design decisions for a more flexible computer system. The new design uses inexpensive 100x100mm prototype PCBs for the backplane and modules. They are connected with 2x25 2.54mm pin headers/socket strips and all off-the-shelf parts primarily from Jameco and some from eBay (2x25 connectors).

The goal is to ease restrictions on the design to allow for some new configurations. For example, accessing memory over the bus and configurable memory holes for external memory. Making all IO devices optional and limiting IO port addresses to only the minimum necessary. Allowing multiple ROM and RAM modules with boot enable jumpers to specify boot devices. Adding simple debug features like user LEDs and switch. Fully buffered Z80 processor with configurable wait state capability and no internal IO or memory devices. Maintain backwards compatibility to the extent possible (two exceptions so far) to reuse existing SBC software.

So far I've built the processor board and partially assembled the backplane. Still awaiting the 2x25 socket strips from eBay to finish the backplane. Next is a clock board with CPU clock and RTC. After that will be the ROM board which hopefully should be enough for some initial testing with simple programs like jploop etc.

There are no assurances this project is going to work although I have gotten some help reviewing the circuitry designs to catch bugs early. This is my first actual build in a long time so I am sort of rusty but it has been a lot of fun. I have a few extra prototype PCBs so if you are a builder and would like to build along with me let me know. This is not a project where you can expect you can assemble the PCB and it will work immediately. More likely, it won't work and require debugging and modifications as these are initial prototype versions.

So if that sort of thing interests you let me know

Andrew Lynch

PS There have been many PCB updates and respins. Here is a list of the current PCBs:

Z80 backplane V1
Z80 processor V3
Z80 clock V2
Z80 ROM V1
Z80 RAM V3
Z80 serial V2 (DIP-40)
Z80 serial V3 (PLCC-44)
Z80 DUART (PLCC-44)
Z80 PPIDE V1
Z80 FDC V1
Z80 DMA V1

Upcoming boards to be released:

Z80 prototype V2
Z80 VDC V1
Z80 KBDMSE V1
Z80 extended backplane (in work)


PS, I'd put links in the above list but every time I do they get trashed by the editor. Not sure what's wrong but I'll attach a list with links


[Updated on: Wed, 20 October 2021 07:54]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8397 is a reply to message #8396] Tue, 23 March 2021 06:33 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Z80 backplane

/forum/index.php?t=getfile&id=2009&private=0

Update: Discovered that the KiCAD LED model changed between ver 4 and ver 5 so the LEDs footprint were reversed on the PCB. Once it was discovered it was an easy fix to reverse and correct but still the front silkscreen is wrong on this PCB. Need to fix on next release.

update: initial build installed only 3 backplane connectors which have since been filled with Z80 processor, Z80 clock, and Z80 ROM board

update: installed another two backplane connectors for upcoming Z80 serial and Z80 RAM testing once those boards are ready

[Updated on: Tue, 08 June 2021 06:09]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8398 is a reply to message #8397] Tue, 23 March 2021 06:36 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Z80 processor

/forum/index.php?t=getfile&id=2010&private=0

Update: Z80 processor board also has reversed LED and diode footprints. Passives and ICs installed. Had to reverse LEDs and reset circuit diode to make them work. Flipped against the PCB silkscreen which is annoying. Need to fix these on next release.

Also, need to flip orientation of processor so pin 1 is in the lower left hand corner. No functional effect but as it is the chip labels are upside down and unnecessarily confusing.

Will add provisions for optional on-board oscillator CPU clock on next revision

[Updated on: Tue, 08 June 2021 06:10]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8399 is a reply to message #8398] Tue, 23 March 2021 06:39 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Z80 clock

/forum/index.php?t=getfile&id=2012&private=0

Update: Ordered Z80 clock PCBs and parts from Jameco. Looking forward to build hopefully next weekend.

Update: Jameco parts arrived yesterday, still awaiting JLCPCB delivery. Did get a notification they were shipped late last week so hopefully next few days

Update: PCBs arrived today, looking forward to build and test over next few days. Making some progress!

Update: started build last night, mostly capacitors, resistors, and a tactile switch. Still a ways to go but looking better. This board has the reversed diodes, LEDs, and transistor like the other two but now I know beforehand.

update: more build and test. LEDs light as expected, all parts in except supercap. Using CR2032 battery instead. VCC and GND in all the right places. more test tomorrow

update: found a bug in the design; need to replace NOR gate with OR gate feeding enable pin on 74ls688. Since spare gates have inputs grounded used flying leads and bent pins to make changes

update: fix instructions are
U1A pin 2 (leave in socket) to U3C pin 9 (lift pin)
U1A pin 3 (leave in socket) to U3c pin 10 (lift pin)
U3C pin 8 (lift pin) to U10 pin 1 (lift pin)

update: built a second board using left over parts. Currently under test but looks pretty good. To be used for debugging purposes and also as a spare while reworking the original

[Updated on: Tue, 08 June 2021 06:10]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8400 is a reply to message #8399] Tue, 23 March 2021 07:53 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Z80 ROM

/forum/index.php?t=getfile&id=2069&private=0

update: Ordered PCBs from JLCPCB and will put together a parts order from Jameco once I figure out what other parts I need

update: checked the BOM and made an order from Jameco. Looking forward to these arriving for build and test

update: Jameco parts order arrived and am expecting PCB to arrive later today or possibly tomorrow. Have written some small test programs to help in the build & test phase and with any debugging. Big step for the project

update: PCBs arrived and started build and test. Got all the components soldered on the PCB and doing initial testing. VCC and GND where they are supposed to be. Start adding ICs tonight assuming all checks out. Getting close to tests with ROMs

update: finished build and test of Z80 ROM board. Inserted jploop ROM and started system. Works, run/halt LED is lit green. ROM0 LED is lit. ROM0 chip select is cycling. Good news

update: inserted halt ROM and started system. Works, run/halt LED is lit red. ROM0 LED is lit. Seems to be working. Good news. More testing tomorrow.

update: all ROM test programs work. Good news
test ROMs:
jploop, works; run LED on, ROM CS pulsing, address lines pulsing, MREQ and RD pulsing.
halt, works; red halt LED on, ROM CS constant, no activity
pingRTC, works; RTC CS pulsing
pingMPCL, works; ROM MPCL CS pulsing

LEDs, works; USER LEDs lit
button, works; no activity until button press, then user LEDs lit and red halt LED lit, activity stops
tone, works; approximately 30 second sound from speaker, medium to high pitched

[Updated on: Tue, 08 June 2021 06:11]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8401 is a reply to message #8400] Tue, 23 March 2021 07:54 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Z80 RAM

/forum/index.php?t=getfile&id=2174&private=0

At long last, the Z80 RAM board. Note since either the battery or the supercap can be installed the footprints are superimposed. Select one or the other with the jumper.

update: Z80 RAM PCBs ordered, expect them sometime next week

update: placed Jameco order for the remaining parts. Most already on hand

update: Jameco parts order arrived, still waiting for JLCPCB board order to arrive. Probably next week based on shipping info

update: Built and tested Z80 RAM board. Works great in 512KB and 1024KB configuration.

update: further testing discovered a problem with the DS1210 implementation leading to corruption of first byte of SRAM chips during power cycle. Not easily fixable so going to do respins of these PCBs with new design

[Updated on: Mon, 26 July 2021 05:19]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8402 is a reply to message #8401] Tue, 23 March 2021 07:56 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Z80 serial

/forum/index.php?t=getfile&id=2087&private=0

update: ordered PCBs from JLCPCB; ordered parts from Jameco. Ordered 6 position right angle socket strip from eBay since Jameco doesn't seem to carry the part

update: ordered a "FTDI USB to Serial Adapter TTL Cable 5V 6 Pin UART Female Header Converter FT232" from eBay and a couple "30 inch RS232 serial ribbon cable DB9 female to IDC 10 pin female" for testing the Z80 serial board. Plan is to use notebook mini-laptop running Lubuntu and Gtkterm with the TTL serial to USB adapter as primary terminal. Keeping the RS232 serial cable in reserve in case the USB adaptor doesn't work.

update: received Jameco parts for build. JLCPCB notified of PCB shipment. Expect delivery mid to late next week.

update: received Dtech TTL serial to USB cable and more parts. Still missing 6 position right angle socket strip connector but since I am not planning to use a USB dongle that's not an issue yet.

update: received PCBs last night and did initial build. All passives and sockets are in place. More testing tonight to verify connections, power, ground, etc. Hopefully install ICs and do some test ROMs. Have pingUART, scream, typewrit, and HDM80 test ROMs ready to go. Installed GtkTerm on my notebook PC for a terminal

update: more testing today. Mostly checks out with a couple exceptions. Power & Ground are good and show up in all the right places. UART clock is working. Solder joints all appear to be in place and OK. Did notice that the CHIP SELECT and POWER LEDs are reversed in order and mislabeled. They work but look odd. Also realized the TTL_RX and TTL_TX are active high signals. Testing continues

update: board is working, running scream test ROM so that's really good news. Something was wrong after initial build and test. It sort of worked but not quite right. Spent some time debugging, ringing out the circuit, making sure all the connections are solid. Now its working. More tests later with typewrit test ROM and HDM80. Also works with intel 8250 btw so if you have some old spares this is a good use.

update: still problems with board. Setting up and testing a lot of theories about what's wrong and eliminating them one at a time. Everything seems to check out but the UART doesn't respond like it should. The older 8250 UART sometimes works but not reliably and the 16C550s never work at all. Something is not quite right and narrowing down on the possibilities.

update: interesting development last night. Using a Tauntek Z80 ICE, I replaced the Z80 CPU and suddenly everything works as it should. Which was sort of surprise because I was expecting to use the Tauntek to find what was wrong with the Z80 serial board but found nothing wrong. Instead as soon as I replace the original Z80 with the ICE all the test ROMs work. So I am thinking the suspect is either the Z80 CPU or it is drawing too much current and drawing down the power supply. This would account for the general flakiness of the system. More experimenting tonight to replace the Z80 CPU with a low power CMOS version to see if that helps. Also install the "slow mode" jumper to enable the switchable CPU clock to 50%. That may reduce power consumption enough for the system to work properly (hopefully).

update: added 10 uF bulk capacitor directly between VCC and GND for UART to test if this is power surge related but no effect. Looks unlikely this is a power issue at this point.

update: system works with ICE installed but not with real CPU. Inspection with an oscilloscope strongly suggests a timing issue between CS# and RD#. Their negative edges are occurring simultaneously when RD# should be lagging CS# by several ns. This gets back to the 74hct688 being slightly slower than the specified 74ls688 and also a lack of qualification on the RD# and WR# signals. Plan is to replace 74hct688 with 74ls688 to see if that fixes problem and if not use cuts and jumpers to add the RD# and WR# qualifications using spare OR gates.

update: with some swap-tronics determined the root problem has nothing to do with the Z80 serial board but is instead a faulty "walking wounded" 74ls07 on the Z80 processor board. Once replaced the Z80 serial board works fine

[Updated on: Tue, 08 June 2021 06:12]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8403 is a reply to message #8402] Tue, 23 March 2021 07:57 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Z80 PPIDE

/forum/index.php?t=getfile&id=2187&private=0

update: readying board for order. Will post Gerber files when available

update: ordered PCBs, posted Gerber files

update: ordered parts from Jameco, should arrive next week

update: PCBs arrived, Jameco parts arrived, starting build. Still awaiting some parts (connectors) from eBay

update: Z80 PPIDE board build and partially tested. Still missing connectors but all other parts installed or ready to install. Have 8GB CF and IDE to CF adapter board. Board responds to IO port queries from dbgmon and seems reasonable but testing limited without remaining connectors

[Updated on: Thu, 24 June 2021 09:32]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8407 is a reply to message #8396] Tue, 23 March 2021 18:14 Go to previous messageGo to next message
mscane is currently offline  mscane
Messages: 108
Registered: October 2015
Senior Member
Hi Andrew,

Good to see you back on the forum!

This looks like an interesting project.

A couple of thoughts I had looking at the design:

1. Power Supply. A linear regulator may not be the best choice as a fully populated backplane may exceed 1 amp depending on the type of chips used. Maybe consider using a switched mode regulator or perhaps one of those Pololu types? Perhaps also consider allowing the use of an external PSU if desired.

2. Address lines. I would suggest adding some additional address lines to allow support of at least 1 MB of memory. This would allow you a bit more flexibility with ROM/RAM disks etc. This would also directly support the Z180 if desired. CPU boards could be simple (up to 64K) or more complex with on board MMU.

3. Add Wait signal to backplane. This would be useful for single stepping and could be included in a bus monitor type board.

Cheers!

Max

[Updated on: Tue, 23 March 2021 19:04]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8409 is a reply to message #8407] Wed, 24 March 2021 03:46 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Hi Max
Thanks!

Yes agree on the backplane voltage regulator. I am using a 9vdc 1A wall wart supply from Jameco with the LM7805 for now but as the system matures I plan to move to a higher efficiency regulator. There are some 7805 drop in replacements like you mentioned that are ~90% efficient compared to a 7805 which is maybe 50% efficient. The goal for now is to show proof of concept and the minimum system is four boards: backplane, processor, clock, and ROM. There are two boards so far and the clock should be on its way soon.

My initial idea for power supply was to use a 5VDC 2A regulated brick supply from Jameco but changed my mind considering how easy it is to plug in the wrong supply with reversed polarity and fry the whole system. There was a polarity protection circuit but the whole thing just got over complicated so I switched to a simple regulator scheme with the idea to replace it with a high efficiency switching 7805 style regulator later on. Should be a simple remove and replace operation.

I reserved 10 spare lines for expansion in the backplane connector (spare0-spare9). The other 40 are all the Z80 processor signals in the same order as on the CPU itself WAIT# included. As the concept develops I may revisit the backplane connector and add another connector for more signals although offset to prevent plugging the board in reverse. As you'll recall there were some incidents early on of builders plugging and/or soldering in connectors resulting in reversed boards. Ended badly every time.

The plan is to make all signals on the backplane either tri-state, open collector, or inputs so you could have multiple of the same types of board. However the only exception so far is the clock board. Only a single CPU clock signal on the backplane at once because it is transmitting 100% of the time with no exceptions. It has to be that way or the CPU stalls.

The ROM and RAM boards are somewhat different from the SBC although I tried to maintain as much backward compatibility as possible. The ROM board supports 2MB using 2 27C080 EPROMs or 1MB using 2 29C040 style Flash ROMs with in circuit reprogramming same as the SBC. The RAM board supports up to 1MB using 2 512KBx8 SRAMs or 256KB using 2 128KBx8 SRAMs. Also there are features to allow for multiple ROM and RAM boards with a jumper specifying which are "boot" devices and appear on reset. The others are invisible until activated by the CPU.

So thanks for asking and good to see you again as well. I've posted the KiCAD and Gerbers on the RBC wiki in case you or anyone else would like to join in the fun. I also have a few extra PCBs but considering their cost (less than $20 for 5 from JLCPCB) it's not worth shipping them anywhere except maybe locally in the US. Regardless with this project I am building it myself first so having fun with these prototypes. Hopefully if this idea pans out I'll post all of the files and people can use them and/or make their own designs.

Andrew Lynch

PS, I'll post schematics for the Z80 backplane, Z80 processor, and Z80 clock boards in this thread later today to help illustrate

[Updated on: Thu, 25 March 2021 04:59]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8410 is a reply to message #8409] Thu, 25 March 2021 06:59 Go to previous messageGo to next message
robg is currently offline  robg
Messages: 36
Registered: October 2017
Member
Hi Andrew,

Have you come across the Z50Bus? It is also the Z80 bus across 2x25 pin headers/pin sockets, plus some RC2014 signals. Its spec supports 100mm x 100mm cards, among other sizes. (Mechanically, it centers the 50-pin connector as opposed to your choice of an offset.) It's relatively new, so not much of an ecosystem, but at the bottom of that page are links to various boards that use the Z50Bus.

Disclaimer: the company that created the bus and others do sell boards related to the bus, but I have no affiliation with them. I saw your Z80-over-50-pins and thought, hmmm, I've seen this before.

-- Rob

Re: Z80 Multi Board Computer [message #8411 is a reply to message #8410] Thu, 25 March 2021 07:21 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Hi
Yes, someone told me about them after I'd already started and was three boards into development. Looks like an example of concurrent evolution with similar ideas. Their approach is somewhat different but a lot in common too. It may be I am the only builder with Z80 MBC and that's alright too. I just enjoy building things so if Z80 MBC goes no where then it is still worth it.

I think the design approach is quite different as well. The Z50 product uses a traditional fully integrated SBC with the Z50 bus for expansion. We did that with the original SBC and ECB connector. The Z80 MBC project is more about functional separation of the computer into distinct boards such as processor, clock, ROM, RAM, serial, PPIDE, etc. like the early S-100 bus machines.

The PCB backplane interconnect is a mechanism for coupling but could easily be something else. My original thought experiment was to use 40 pin IDE cables with multiple IDC connectors added on. The ribbon cable backplane idea could still work but use 50 pin SCSI-1 cables instead. I went with a PCB because the ribbon cable is pain without a chassis holding the boards in place. 50 pin connectors on a 100x100mm PCB is a really inexpensive solution.

Thanks, Andrew Lynch

[Updated on: Thu, 25 March 2021 07:50]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8412 is a reply to message #8411] Thu, 25 March 2021 12:22 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
I have 3 extra Z80 backplane PCBs and 3 extra Z80 processor PCBs if anyone wants to build and test along with me. This will probably be quite exciting (read: lots of bugs) so if you're interested please let me know. You can have a set of my extras since there is no point in letting them sit unused in my junk box. Continental US only though because shipping $0.80 worth of boards overseas makes no sense financially. Just order your own with the Gerbers from JLCPCB.

[Updated on: Tue, 30 March 2021 03:12]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8414 is a reply to message #8412] Fri, 26 March 2021 09:33 Go to previous messageGo to next message
danwerner is currently offline  danwerner
Messages: 39
Registered: October 2015
Member
Looks very cool and if you are looking for builders to test and debug, I would be happy to join. I like the idea of removing some of the more expensive components and getting back to smaller, more modular basics. If you still have spare PCBs, I would be happy to cover shipping or I can order a new set from JLC (I have been using the quite a bit recently).

Dan Werner
Re: Z80 Multi Board Computer [message #8415 is a reply to message #8414] Fri, 26 March 2021 10:23 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Awesome! Thanks Dan
Re: Z80 Multi Board Computer [message #8458 is a reply to message #8415] Mon, 12 April 2021 04:10 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
The Z80 ROM board PCB is on its way along with my Jameco parts order. Still have 3 of each PCBs left so if anyone would like to join in there is still some work left to do. I am hoping to get the Z80 ROM board this week and build and test. That starts the exciting part of the project because then it can run programs from ROM. The plan is to start with some simple programs like HALT, JPLOOP, etc. Turn on the user LEDs, check for user button presses and things like that. There is a speaker on the Z80 clock board so possibly some simple tones. These are the kinds of things I did for the original Z80 SBC test prototype back in 2006 in bringing up the system initially.

Once we know the Z80 ROM board is working, the next phase will be the Z80 serial board and that opens up using the HDM80 ROM-only (no RAM) hardware debug monitor. I am hoping that would be sufficient to fully exercise the hardware so I can roll in any improvements before ordering the Z80 RAM board. With the RAM installed it allows running the modified CP/M 2.2 boot image with RAM & ROM drives.
Re: Z80 Multi Board Computer [message #8477 is a reply to message #8458] Sun, 18 April 2021 06:06 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Good news, the test programs work. I have some ideas for some other test programs but the initial seven seem to work OK. They are: halt, jploop, pingRTC, pingMPCL, button, LEDs, and tone. These are very simple programs which I burned into ST M27C1001 EPROMs (I have a lot of these so its good to use up these crappy old electronic waste items, sort of pseudo-recycling). The Z80 ROM board isn't really designed for 27C1001s but they are close enough they work any way.

The only test program that produced any surprises was tone which seemed to run forever until I realized I'd forgotten I had been testing the wait state generator and had left it on maximum wait states (MREQ=7 and IORQ=8). So once I moved it over to minimum wait states it still ran twice as long as I expected but more reasonable. It turns out I'd miscounted T-cycles for the inner loop instructions so once I recalibrated then tone worked as expected. It's not glorious but good enough to show the speaker and related parts all work fine.

So up next is more testing and then the Z80 serial board so it can run hardware debug monitor, the ROM-only debugger HDM80. This should be fun and am looking forward to it

PS, I still have 3 each of the Z80 backplane, Z80 processor, Z80 clock, and Z80 ROM board PCBs so if anyone else wants to join in the fun just let me know. I think once the Z80 serial board is working this is going to get a lot easier and a good chunk of the system is known working. Not finished but making progress

[Updated on: Sun, 18 April 2021 06:08]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8549 is a reply to message #8477] Wed, 28 April 2021 05:40 Go to previous messageGo to next message
dr_acula is currently offline  dr_acula
Messages: 68
Registered: October 2015
Location: Adelaide
Member
Great format. I agree the 100x100mm seems to be much cheaper for the PCB fab houses. Last order I got from Seeed was ten boards for $4.90, and then a week later they sent me a voucher for $5 off the next purchase. I don't have the heart to use the voucher - they will go broke if they are giving boards away!
Anyway, there is the RC2014 format which is a single row but it is a bit wobbly. So two rows gives a bit more mechanical stability. But I had an idea - what if you have two boards mounted in your backplane, you could join them together with mounting posts. There are mounting posts that screw into each other. I measured a couple on some perfboard - 7 holes high and the other was 10 holes high. Or an even simpler option - use some threaded rod and nuts. So you lose a bit of space on the boards if you put four holes, one in each corner. But it would be much stronger.
Re: Z80 Multi Board Computer [message #8559 is a reply to message #8549] Thu, 29 April 2021 05:29 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Hi James

Yes, I considered the stacking approach. Then there is the issue of the backplane connector. You could use top and bottom connectors like the PC/104 stacks which are cool but the connectors are really expensive. The other alternative is to use spacers and a ribbon cable with IDC connectors to string the boards together. However either the spacers between the boards are rigid or the backplane is rigid but not both or you'll have unreliable connections because spacing tolerances make it difficult to snug the connectors into a tight fit.

I went with the rigid backplane because it is simple and cheap although it may change with future versions. Right now the boards fit in the backplane snug and seem to make a decent connection although there is a bit of back and forth wobble. I suspect that will worsen as the 50 pin connectors age so may need to make different plans. Possibly back to the 4 corners spacers with IDC ribbon cable for a backplane. Although that does make for swapping out boards to be a real hassle compared to a drop in backplane

Another approach is to put two holes in the top corners of the PCBs and mount a face plate. Then they could be placed into a backplane and secured in place with a chassis. Just not that far along yet so we'll see how this develops. I really haven't made up my mind yet and trying to keep the options open. Almost whatever path we go though means a respin of the existing boards which is not a big deal but will take time to do. Right now focusing on making the underlying electronics work properly and get some software ported once the system is functionally complete (CPU, CLK, ROM, SER, & RAM)

I don't like edge connectors because they waste a big portion of the PCB and the connectors are expensive. DIN 41612 are awesome and reliable but are costly and take up a lot of space and chew up a lot of PCB space too. I think I like the IDC connectors or ribbon cable the best because they are space efficient and low cost. Not the greatest backplane connectors but as IDC on ribbon cables are really good. Generations of IDE and SCSI drives used these cables so you know they had something going for them!

Thanks

PS, the latest idea is tipping the Z80 MBC on its side and having the top (with the LEDs) facing out the side and the bus connector on the far side. Then make a card cage with like waves made of plastic to hold each board but not card guides. Just something to physically keep it separate from touching adjacent boards. Replace the backplane with a ribbon cable and IDC connectors. The idea is still formulating so much left to consider.

[Updated on: Thu, 29 April 2021 06:32]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8579 is a reply to message #8559] Mon, 03 May 2021 04:13 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Hi
Encountering a lot of problems with the Z80 serial board which has been quite a surprise. I have gotten it working sporadically with all the test ROMs (pingUART, scream, typewrit, and HDM80) so I know it can work but most of the time the UART returns garbage characters. What's interesting is it returns consistent garbage characters but still the board is intermittent at best. Also I get no response using a 16C550 UART but seems to work more often with a 8250. Not sure what's going on so testing continues.

So far, I've reinspected all the solder joints on the Z80 serial board and remelted all the solder joints on the backplane. Pulled out all the ICs and went through verifying all the connections are present and looking for sneak circuits or shorts. Nothing turns up. Replaced all the ICs and tested them in the checker to make sure they work. It is possible the problem is not on the Z80 serial board so I am looking at all the boards for suspect issues.

At this point it looks most likely either a power problem or a timing issue. It could be something else though such as slow rise time on M1# but it is hard to tell. It is a 4 MHz design so it is fairly slow timing wise. Power is suspect because there are 5 boards pulling current from a single LM7805 VR and its possible its exceeding its capacity by adding the Z80 serial board even though it worked prior to that. However other test programs work like tone2 so it's hard to tell for sure. My plan for tonight is to remelt all the connections on the Z80 serial board to rule out a cold solder joint. Also tried adding a wait state to memory and IO accesses but no effect.

Until root cause is located and corrected, the Z80 RAM board and the rest of the project is on hold. Definitely a show-stopper if the primary communications method isn't working.

[Updated on: Mon, 03 May 2021 04:16]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8583 is a reply to message #8579] Mon, 03 May 2021 13:03 Go to previous messageGo to next message
wsm is currently offline  wsm
Messages: 219
Registered: February 2017
Location: AB, Canada
Senior Member
I only did a QUICK scan of your schematics but it would appear that U2A on the processor board which generates /M1 on the bus is an LS07 open-collector. There's a 4.7K pullup in RR1 on the /M1 signal which is an input to the LS244 on the serial board and also other boards. The rise time on /M1 will be dependent on the number of boards using it.

Likewise on the processor board is U2F (LS07) possibly jumpered to /WAIT. Instead of U2F I'd feed the READY signal into an OR gate with the bus /WAIT (U1.11) but you'll need to check polarities.

My $.02 would be to drive all the CPU signals onto the bus using a common driver family (i.e. LS or your HCT's) rather than open-collector, especially /M1 in this case. That way the timing should be the same as /IORQ, /MREQ, /WR and /RD, albeit all of them have a one gate delay. This kind of rise time / delay issue becomes even more of a problem as processor speed increases.
Re: Z80 Multi Board Computer [message #8584 is a reply to message #8583] Mon, 03 May 2021 14:28 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Hi,
Yes, one of the suspects is the M1# signal. It uses an 74ls07 buffer OC gate with a fairly high resistor pull up. If this turns out to be the problem then my first approach is to use a smaller resistor value to speed up the rise-time and if that doesn't work pump it through the remaining spare 74ls244. The downside to using the 74ls244 is then only a single one per backplane because there is no sharing with it. I was hoping to use an OC gate to allow potential multiple M1# transmitters on the bus but that may need to change. Thanks for the review!

Andrew Lynch
Re: Z80 Multi Board Computer [message #8585 is a reply to message #8584] Mon, 03 May 2021 17:18 Go to previous messageGo to next message
wsm is currently offline  wsm
Messages: 219
Registered: February 2017
Location: AB, Canada
Senior Member
I've had to try deal with the slow rise time of an OC signal feeding a non-Schmitt input and even with a 470 ohm (~10.6 mA) pullup it still wasn't reliable and eventually forced the addition of a Schmitt buffer.

Perhaps a different question might be whether you're trying to support multiple processors on the bus (i.e. bus mastering) or just DMA controllers? It would appear the processor board only supports DMA (i.e. BUSACK) for tri-stating address and data plus /IORQ, /MREQ, /RD and /WR.

If you're trying to allow multiple processors, then there's more questions that need to be addressed such as:
- If the bus signal /NMI, /INT, /WAIT, or /BUSREQ activate, which processor are they meant for?
- What happens if multiple processors signal /M1, /RFSH or /HALT?

Since the processor board doesn't have any memory, it has to be in the WAIT state if there's another bus master. If you choose to add bus ownership signals, there'll need to be an arbiter to reliably determine bus ownership if there's simultaneous requests. Two Z80's without local memory on a bus like this means each processor will likely spend at least half the time in a WAIT state.

Given the potential problems, I'd suggest only allowing for DMA controllers and not multiple processors. That means /M1, /HALT, /RFSH and /BUSACK can be bus drivers rather than OC outputs.
Re: Z80 Multi Board Computer [message #8595 is a reply to message #8585] Wed, 05 May 2021 03:46 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Hi
Still not working but did get a look at M1# on the scope and it doesn't look like that's the issue. At least at 4MHz it has enough rise times although this will probably be an issue at higher speeds. I believe there is something else going on inside the Z80 serial board which is causing the UART to either not respond or be very flakey. More as it develops
Re: Z80 Multi Board Computer [message #8639 is a reply to message #8595] Mon, 24 May 2021 03:31 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Hi
OK the mystery of the non-working Z80 serial board has been solved so moving on to new topics. It turned out to be a bad 74ls07 on the Z80 processor board. Both chips I purchased exhibited the same characteristics (apparently from the same lot) but when I substituted a different 74ls07 from a different lot the problem mysteriously went away like it was never there from the start. I suspect the 74ls07 chips are both counterfeit and using a real 74ls07 causes the circuitry to work as intended.

First, the Z80 MBC is getting rather heavily loaded with four boards so I've been looking into ways to reduce power consumption. One quick way to reduce a lot of current consumption is to switch to a CMOS Z80 which all by itself probably saved about 180 mA under max load at 4MHz. Next I am going to look where I can safely substitute 74hct ICs instead of 74ls without causing a lot of problems. There should be a few applications that are not timing sensitive where I can reduce the power somewhat.

Hopefully that stretches out the LM7805 for a while longer but the next step is to move to a Pololu high efficiency 5VDC regulator. Moving away from LM 7805 should gain about 400 mA or so of capacity.

Also based on the progress from fault isolating the Z80 MBC I've decided to build a second unit for compare and contrast. I have plenty of spare parts and there are few boards left so might as well put them to use. That way I can swap boards between the two systems to help isolate problems in the future that was very difficult with only a single system. I am starting with the Z80 clock board so we'll see how that goes.

Next up is the Z80 RAM board which is the really big project. Looking forward to getting this board accomplished. Then can start on porting over the software.

[Updated on: Fri, 28 May 2021 04:48]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8649 is a reply to message #8639] Fri, 28 May 2021 04:37 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
OK, so I ordered the Z80 RAM PCBs from JLCPCB and the remaining parts from Jameco. I had most of the parts already on hand so it wasn't a lot left to get. Looking forward to the Z80 RAM build and hopefully this goes well. I think the Z80 RAM is the most complicated board so far because it is kind of the "mirror image" of the Z80 ROM board even though the design is very similar in some ways. The goal is to preserve as much compatibility with the original SBC as possible although it is in the Z80 RAM board where the first real breakage with backwards compatibility occurs.

One of the goals of the Z80 MBC project is to allow memory access over the bus and so both the Z80 ROM and Z80 RAM boards have mechanisms to be disabled and open "memory holes" so the CPU can access external memories. Both boards can be disabled so the whole 64K memory map is open to bring in bus memories. The original SBC defaulted on reset to 32KB lower memory and the 32KB RAM in upper memory. If you disabled the lower 32KB ROM then it was automatically backfilled with 32KB RAM for a whole 64KB RAM memory but precluded any means to bring in external memory. Unfortunately this introduces the hard break with backwards compatibility because instead of disabling the ROM to get RAM you have to disable the ROM and enable the RAM as separate steps. Not a big difference but a significant one which will affect the existing software.

The Z80 RAM board also doubles the amount of RAM available to 1MB by adding a second 512KB chip. All of the RAM is accessible through the lower 32KB memory page and the upper 32KB RAM page remains fixed in the upper page of the first 512KB RAM chip. Like the Z80 ROM board the Z80 RAM board can be enabled or disabled on boot allowing for multiple RAM boards to be installed and used. In theory this allows for quite an expansion of RAM presuming only one board is designated as "boot"

Getting the Z80 RAM board working is critical to the project though because that allows for access to the existing software base even with minor modifications. So far the software has consisted of simple test ROMs to exercise single functions in a minimal fashion. The most sophisticated test ROM is the HDM80 (RAMless hardware debug monitor) which gives only a few simple test functions with a stripped down user interface. With the Z80 RAM board porting over CP/M-80 and other software becomes possible.

[Updated on: Fri, 28 May 2021 04:42]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8650 is a reply to message #8585] Fri, 28 May 2021 05:03 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
wsm wrote on Mon, 03 May 2021 20:18
Given the potential problems, I'd suggest only allowing for DMA controllers and not multiple processors. That means /M1, /HALT, /RFSH and /BUSACK can be bus drivers rather than OC outputs.
Hi, agree it may come to that. We're not far enough along in the testing yet to really wring out this part of the design yet. Still doing basic functionality like RAM, ROM, serial, etc. However once the day comes to look at speeding up the processor board from 4 MHz I suspect it may go to a single processor only and redesign the buffers for those troublesome four outputs. I think the rest of the boards should still work. I am planning for a Z80 processor board respin planned already but I am waiting until the design matures a bit while working out these other issues.

There may be another scheme to allow for multiple processors (not multiprocessing) using the spare bus pins to tri-state the whole processor board to allow for another processor board to take over. The S-100 allows for multi-processor designs using it's scheme so I think it would be something along those lines. Probably not multiprocessing though because that implies local RAM, ROM, and IO on the processor board continuing on once isolated from the bus or even more sophisticated bus-sharing approaches. True multiprocessing is a whole separate concept and much more complicated. Basically a collection of SBCs running in parallel and I don't think this simple concept can really go that far.
Re: Z80 Multi Board Computer [message #8657 is a reply to message #8650] Mon, 31 May 2021 08:18 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Hi,
I noticed something very important while building the second set of boards -- board separation clearances. There are 13 millimeters spacing between the boards so each board cannot be too tall or it will hit the back of the board in front of it and possibly cause shorts. This is not a problem with only a few boards and spaced out but as the backplane fills up the boards start getting closer. So on the Z80 serial board I changed to 7mm tall capacitors to help clearance but also noticed that DIP switches with sockets are right on the edge of too tall and also TTL oscillators in sockets are close to too tall also. Actually neither needs to be socketed its just a habit to uses sockets whenever possible. In these cases though they are too tall.

The backplane and processor boards are not effected but the clock, ROM, and serial boards are potentially effected. The new boards I can leave off the sockets and the older ones remove the sockets as needed.
Re: Z80 Multi Board Computer [message #8660 is a reply to message #8657] Mon, 07 June 2021 03:44 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Hi
Major progress this weekend. Got the Z80 RAM board built, tested, and installed. Seems to be working OK so that's great news. Now that there is working RAM switched the test ROM to a legacy firmware. The loader and dbgmon work without modification because they don't rely on the MPCL compatibility. Having dbgmon available to help test the system is really nice and a big step up from HDM80.

Started in on a port of CP/M-2.2 which had some partial success but not quite there yet. The MPCL changes seem to be limited to the CBIOS only so I made a few updates and was able to get CP/M 2.2 to boot. At least the B: drive came up (ROM drive) and the A: drive (RAM drive). The B: drive thinks it is a 1MB ROM drive but in reality it is a 512KB drive so there is a problem with its DPB. I think that's a fixable problem but not much of an issue at the moment. The A: has more serious problems in that it is supposed to be a 512KB RAM drive (448K actual size) but even when it's empty it claims its only got 60KB available space. So 388KB are mysteriously used up by something or there is a bug somewhere (most likely the latter). The good news is the 60KB which is available seems to work fine so its a matter of finding the problem now.

Also the RTC is acting weird. The B: drive image includes the original RTC program but I am thinking this circuitry changed between SBC V1 and SBC V2 and the Z80 MBC implements the SBC V2 circuitry. So it partially works in that I can read the time and it prints, even seeing it update as the RTC increments. It sort of works but I have yet to get it to actually set the correct time. I may be using it wrong though. I wrote the original RTC program back in 2007 so that's getting to be a long time ago and I don't remember exactly how it went. Also it looks like the most recent RTC programs have been significantly updated.

My goal is to get ROMWBW running on this system so this stage is just testing and experimenting. Assuming I can get a firmware set to work properly, then I'll have a set of modifications to implement on a CBIOS to reflect the MPCL differences.

So that's the latest. More experimenting with CP/M 2.2 and tools. Next board will be the Z80 PPIDE for mass storage. Hopefully then the system will be a bit more self-sufficient. I would like to get it to be self-hosting so I don't have to move Flash chips back and forth to test out new software.

I still have a couple sets of boards left so if anyone wants to join in the fun please let me know.

Thanks, Andrew Lynch

PS, I am building a second Z80 MBC board set to help with debugging. So far I have a Z80 backplane (two slots installed), a Z80 clock board (complete), and an almost complete Z80 processor board. The theory is I can build these boards, test them, and swap them out with the originals to aid in fault isolation and also as substitutes during upgrades without taking the whole system down. Such as removing unnecessary sockets from certain boards, etc.
Re: Z80 Multi Board Computer [message #8661 is a reply to message #8660] Mon, 07 June 2021 16:37 Go to previous messageGo to next message
mscane is currently offline  mscane
Messages: 108
Registered: October 2015
Senior Member
Hi Andrew,

With the RAM drive, make sure the directory space is filled with 0xE5 before you add any files.
Otherwise stat will not report the correct usage. Doing an era *.* is not sufficient as it still leaves
data in the directory.

A while back I wrote a utility called CLRDIR.COM which will do the job for you. It will run on most implementations
of CP/M 2 and CP/M 3. You can find it distributed with ROMWBW.

Cheers!

Max
Re: Z80 Multi Board Computer [message #8662 is a reply to message #8661] Tue, 08 June 2021 03:13 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Hi Max
OK, thank you!
Re: Z80 Multi Board Computer [message #8664 is a reply to message #8662] Tue, 08 June 2021 06:15 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Hi,
Someone requested the Gerber files for the Z80 MBC board set so I uploaded them to the messages in this thread. They are free to use as you see fit. Please post in this thread if you decide to build them. Photos always appreciated! Also check the RBC wiki page for tips and notes on the boards.

https://www.retrobrewcomputers.org/doku.php?id=builderpages: lynchaj:start
Re: Z80 Multi Board Computer [message #8666 is a reply to message #8661] Tue, 08 June 2021 09:35 Go to previous messageGo to next message
norwestrzh is currently offline  norwestrzh
Messages: 168
Registered: November 2015
Senior Member
Hi Max --

>> A while back I wrote a utility called CLRDIR.COM which will do the job for you.
>> It will run on most implementations of CP/M 2 and CP/M 3.

This is an excellent opportunity to give you a *HUGE* thank you for CLRDIR!! I use it with CP/M 2.2 to prep. new filesystems on compact flash. Works great!!!

So .... thanks!

Roger
Re: Z80 Multi Board Computer [message #8667 is a reply to message #8666] Tue, 08 June 2021 12:15 Go to previous messageGo to next message
edzard is currently offline  edzard
Messages: 49
Registered: August 2019
Member
Hello Andrew,

Thanks for making the Gerber files available!

Just ordered them through jlcpcb.com.


Best regards,


Edzard
Re: Z80 Multi Board Computer [message #8669 is a reply to message #8667] Tue, 08 June 2021 17:51 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
You're welcome, enjoy!

Pls post photos of your build
Re: Z80 Multi Board Computer [message #8674 is a reply to message #8666] Thu, 10 June 2021 22:52 Go to previous messageGo to next message
mscane is currently offline  mscane
Messages: 108
Registered: October 2015
Senior Member
Thanks Roger,

It has turned out to be a really useful utility. I see it pop up in quite a few videos on YouTube.

The Capital Y catches a few but it was supposed to make sure the user knew what was about to happen.

Max
Re: Z80 Multi Board Computer [message #8683 is a reply to message #8674] Sun, 13 June 2021 17:37 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Wow, an amazing weekend!

the really great news is with the nearly full board set and the new Z80 RAM board there is a working CP/M image. Dan and I worked on one of his legacy firmware and was able to convert it to the new MPCL scheme and update it for RAM and ROM drives. It is amazing to see the system working. Wow!

The new z80mbc is mostly backwards compatible except there are really two basic changes for the MPCLs (RAM to ROM and ROM to RAM) and all the memory routines use variations on these two themes that affect the CBIOS routines:

RAM to ROM: (used in ROMD, READ_EEPROM_DISK)
LD A,00h
OUT (MPCL_RAM),A
OUT (MPCL_ROM),A

ROM to RAM: (used in RPAGE, READ_RAM_DISK, BOOT, PAGERB)
LD A,80h
OUT (MPCL_ROM),A
OUT (MPCL_RAM),A


The key point is that whatever lower memory page is in memory that it be switched out *before* switching in the new memory. This is to prevent bus contention

[Updated on: Sun, 13 June 2021 17:43]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8685 is a reply to message #8683] Wed, 16 June 2021 03:44 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Hi
Making some great progress on the software. Now boots CP/M 2.2. Attached is a ROM image you can burn to a 512KB or 1MB EPROM. Also the updated CBIOS.asm with the adjustments for the revised MPCLs. The changes are small but important. The rest of the files are the same as any other firmware distribution (CCP, BDOS, dbgmon, loader, etc.)

There are 4 drives; A: is 448K RAM drive, B: is a mirror of A:, C: is 1MB ROM drive (actually 480K using 29F040 Flash ROM), and D: is a 22K ROM drive

Later today I'll upload a photo of the system booted

Photo below of system booted and CP/M 2.2 running. Notebook computer on the right, system under test in the middle, and spare system to the right

/forum/index.php?t=getfile&id=2194&private=0

[Updated on: Wed, 16 June 2021 09:07]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8741 is a reply to message #8685] Sat, 03 July 2021 10:07 Go to previous messageGo to next message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Hi
Z80 MBC project is coming along nicely along with integration of DSKY next generation. If you like blinkenlights, you are going to love Z80 MBC with DSKY ng! Wow, so many LEDs

Z80 PPIDE seems to work fine. Tested with PPIDETST (Thanks Max!) and it seems to be working well. Finishing up DSKY ng and it seems to be working with TSTDKSY (Thanks Wayne!) so I am pretty happy.

/forum/index.php?t=getfile&id=2213&private=0

I still have one remaining full set of PCBs if anyone in the US would like them. Please let me know and I'll send them to you.

The other development is I've built a second Z80 MBC so I've named the two systems Red and Green for the LEDs they have. Using different colors of LEDs helps me keep the parts straight when debugging. Later today I'll start on making the Red version of the Z80 PPIDE board

[Updated on: Sat, 03 July 2021 10:13]

Report message to a moderator

Re: Z80 Multi Board Computer [message #8751 is a reply to message #8741] Sun, 04 July 2021 14:18 Go to previous messageGo to previous message
lynchaj is currently offline  lynchaj
Messages: 737
Registered: June 2016
Senior Member
Running ROMWBW! Wow! So cool! Super excited!
Previous Topic: DS1210s from eBay
Next Topic: porting zmodem to CP/M


Current Time: Sat Nov 27 09:50:32 PST 2021

Total time taken to generate the page: 0.01217 seconds