
With regard to wiring up the interrupt daisy chain; reading the Zilog application note: THE Z80 FAMILY PROGRAM INTERRUPT STRUCTURE I came up with the following daisy-chain. The SIO has priority (first in the chain) with IEO wired to the successive IEI
(hence the old MacDonald reference in the post subject): 5V -> IEI -> SIO -> CTC -> PIO -> IEO. From my understanding the Z80 can handle up to 4 devices in a chain without having resort to external logic to handle ripple or injecting additional waits.
I'm in the process of ripping up my first design of a Z80 SBC and having rethink. Originally I what I came up with is a SBC on a single RC2014 form factor card; taking a few liberties with the original layout by "un-cutting corners" for extra space. The Gerbers are now in the hands of JLPCB and I'm waiting patiently by the post box. With the exception of the headers it's an all SMD design (in case you are wondering all the passives are on the backside). The goal is to use discrete Z80 peripherals and a Max7000 CPLD for the glue logic as opposed to cheating with a Z180. To answer your question: Yes, the ROM is a socketed PLCC; I couldn't find a 3D model for a 32 pin PLCC socket.I tested this on a breadboard with the equivalent TH parts (except the CPLD) going insane debugging the rat's nest of wires. So in principle it should work... The KiCad 5.1.4 files are here: THS-80 Model I . The THS-80 acronym stands for: Thru-Hole Sucks.
- The CPLD I chose didn't have enough I/O pins for my design. This necessitated having throw down a couple of extra discrete IC's to handle the additional glue thus defeating the purpose of having a CPLD in the first place. School boy error...
- Lots of sharp pins pointing in all four directions almost guaranteeing a punctured finger or two
- There was no particular reason why I had to stick with such a small (2"x4") form factor. As a consequence, I ended up with a 4 layer board because of the routing nightmare caused by the space constraints.
- I wanted a Diligent PMOD interface that would be used to support either SPI, I2C or another TLL serial. It didn't fit because of points #1 and #3
- The bypass caps probably should have gone on the front side of the board since JLPCB doesn't support blind or buried via's (the 5V power plane is on layer 3). So I violated the cardinal rule that the power trace should go to the bypass cap first and not directly to the IC VCC pin. But I suppose at the frequencies I'm working at it probably doesn't matter.
- I totally forgot about including a mode-2 IEI/IEO daisy chain. I guess not strictly necessary but should be available none the less.
- The wild-fire success of Steve's SC126 motherboard made me realize that horizontal is superior to vertical.
So the new design will look (more or less) like this:
With regard to wiring up the interrupt daisy chain; reading the Zilog application note: THE Z80 FAMILY PROGRAM INTERRUPT STRUCTURE I came up with the following daisy-chain. The SIO has priority (first in the chain) with IEO wired to the successive IEI
(hence the old MacDonald reference in the post subject): 5V -> IEI -> SIO -> CTC -> PIO -> IEO. From my understanding the Z80 can handle up to 4 devices in a chain without having resort to external logic.
Used plcc smt sockets for eproms many years ago. Very tricky to solder by hand due to pins inside. Not very reliable connections to device after only a few changes.
For PMOD you might want a bit more space to adjacent connectors. Or maybe use a pin header and short ribbon cable to the PMOD, this might mean mirror image of the connections.
Mark
Your IEI and IEO connections seem 'weird'.
The IDE/CF interface logic may be troublesome--the CF chip select can't assert until IORQ is asserted, but by then WR or RD is also asserted, so you don't have sufficient setup time from CF chip select to WR or RD. Some CF disks might work, but many will fail.
Bill