5 February 2016

Serial I/O

Serial thriller...


All 5 Modules Together
Having stalled quite badly with this project, due in part to what turned out to be just a schoolboy error I am now back up to speed and close to completing the project. The schoolboy error in question turned out to be a short in amongst the solder joints on the Veroboard backplane that was too small to see, even with 10x magnification, but was enough to prevent the machine from running. I'd already tested the tracks with a meter and found no problems and only the age-old practice of running a pointy tool along each groove in the veroboard got me going again, this simple check that goes along with everybody's first soldering project would have saved me a shed-load of grief if I'd done it first instead of trying to be clever.

The other problem that became apparent once I'd finished leaping all over the room in joy at getting my first terminal output is that I the RC2014 was getting no inbound serial traffic. A quick poke around with the logic analyser confirmed that although the FTDI cable was putting out a TX signal, it wasn't getting to the RX pin of the 6850 and so bypassing the 2k2 resistors on the header using the serial lines available on pins 35 & 36 on the bus revealed that either R2 is faulty, or simply too high a value for my FTDI cable.
Completed and running RC2014.

Unfortunately, I was so thrilled at the prospect of building the Serial Module I forgot to take pictures as I went along, it's the most complex of the modules and the most difficult to solder, though going by how easy the rest are it isn't really saying much. I chose to fit both the RS232 connector AND the MAX232, partly because I already had them in my parts bin and partly for the sake of versatility. One thing worthy of note is that although I purchased a 68B50 specifically for this project, both of the ordinary 6850 chips I have work perfectly well in it's place with no issues whatsoever and despite it being me that first raised concerns with Grant Searle about problems with the 6850 operating at 115200 baud, the only time I have actually experienced any problems is when using a breadboard.



5 January 2016

Ram and Rom

Thanks for the memory.


There isn't really much that hasn't been discussed before when building the RAM and ROM boards, save maybe the jumpers on the ROM board which set which 8k bank of the EPROM is enabled. They consist of 3x 3 pin male DIL headers and need to be held in place with blu-tack or something similar whilst soldering them in place, it is best just to solder one pin of each header, then remove the blu-tack and check their alignment before soldering the rest of the pins.

It was also at this point I realised that I had made the mistake of soldering the header on the wrong side of the Z80 board, this won't affect it's function but will look odd next to the other boards that have their header soldered on the left hand side.

For once, all the diligent scavenging of screws, jumpers and oddments from old computers has paid off as I have plenty of plastic jumpers for the ROM selector in my spares box. 

3 January 2016

Z80

...I wanna' be Z80'd



The completed module without the Z80 in place.
Just how much can be written about this module, it consists of 5 elements including the PCB itself, DIP-40 socket and 34 pin header, in fact there is just one passive component which is a 3.3k resistor to keep the Z80's INT line held high.
The Z80 module positioned in a slot.

The thing to watch here when soldering the header into place is that it stays flush to the board, I soldered a pin at each end and applied a bit of downward pressure while I soldered a pin near the middle, with a similar manner to the one I employed whilst soldering the backplane. A quick check to make sure everything was where it should be and I could get on with the rest of the pins, though the less time spent heating the header before you apply solder the better, the plastic that holds the pins in place starts to melt far too quickly and you can end up with one misaligned pin in an otherwise perfectly straight row.

It's probably worth pointing out at this stage that if you push one of the full length modules into it's 'slot' on the backplane then you stand a good chance of bending it's pins when you come to removing it, such is the force required to remove it once it is pushed fully home.

Clock

Clocking in...

The completed module minus it's 74HCT04.
Makes sense to start with the smallest module of the five, the CPU Clock/Reset. The clock itself consists of 6 passive components and an 74HCT04 and is the same design used in Grant Searle's Simple Z80 Computer and various other Z80 projects. Although the module takes up a full slot on the backplane, it occupies only 4 lines on the RC2014's bus and connects to the bus by means of an 8 pin header which is a bit of a waste of a full slot, if I'd thought ahead whilst constructing the backplane then I may well have soldered in a separate small header just for this module.  

I started by soldering in the reset switch and DIP-14 socket as these were the lowest components on the board, the resistors sit upright and so are above the profile of these parts. One thing to watch if you are using a low profile crystal, is if it is soldered flush to the PCB it will foul the plastic portion of the header beneath it once you come to soldering that in place, so it is best to leave a gap of a few mm. 



After soldering the rest of the passives into place, I offered up the header and luckily I'd left plenty of room underneath the crystal for it to fit. It is rumoured that there may be a backplane PCB in development so hopefully the issue of one tiny module occupying a whole slot will be resolved, though the loss of flexibility brought by an easily removeable/replaceable clock may prove to be a disadvantage in the long run.

I have deliberately left fitting the logic into place 'till last in order to minimise the risk of electrostatic problems associated with sticky fingers :).

1 January 2016

Backplane

Plane in the Neck

Yes, I messed up the spacing of my slots,
apparently incapable of even following my own marking-out. 
280 solder joints and one stonking headache later, the backplane is finished and tested, all that remains now is to apply the pinout labels I printed beforehand. One thing that became apparent when positioning the slots is that the headers are rarely perfectly straight in any direction and the technique I adopted when soldering them in place was to solder the end pins of each header, let the joints cool and then check for any gaps between the header and board, then reheat the joint while applying pressure to that end of the header to make it sit flush against the board. Another good thing to do at this stage is to make sure that the header is at a proper right angle to the board, because there's only two pins soldered in place it's much easier to make corrections now than later.

Finished backplane - complete with pinout labels.

Once you're satisfied everything is where it should be, solder another two pins, four or five tracks in from each side and check the alignment again, I think it's probably easiest to start with the two end-most slots and work your way in, this way the board sits level when upside down and makes soldering the rest of the headers in place much less frustrating, check for any gaps in between header and board in the middle of the slots before soldering a couple of pins nearer the centre, applying gentle pressure if necessary to close them before making the joints, again - making corrections at this stage is much easier than when you have most or all of the pins soldered.

When you have finished soldering, be sure to check for shorts between tracks with a multimeter set to the 20k range, most shorts will be obvious solder bridges that are visible to the naked eye but others will not, a few extra minutes spent checking could potentially avoid a mushroom cloud later on.

30 December 2015

Getting Started with the RC2014

Overview

The RC2014 is a modular computer system based on Zilog's Z80 CPU and clocked at 7.3728mhz, with 8k ROM, 32k RAM, Serial I/O and various other add ons under development. Created by Spencer Owen, originally as his entry into the Retro Challenge Summer 2014 competition the project has now developed into a website and blog as well as a set of professionally made PCBs available on Tindie to help make the process of building your own so much less painful


Getting Started

After unpacking the PCBs and gathering together all the other components needed, I started to consider my options of where I should start and what should go together first. It was around that time I spotted a photo of Spencer's RC2014 with a nice neat label on the backplane that details the function of every pin on the system bus, I asked if he could send me the document so I could print my own and although he'd deleted the original file, he very kindly went to the time and effort of recreating it and made it available for everyone download and print their own.

The PCBs, sockets, headers and Veroboard.

Backplane

The backplane seemed like a good place to start as it the basis of what holds everything together in this modular system, before I start building the modules themselves as a set rather than completing each one individually. This means I can start with the resistors and other passives, then the IC sockets, headers and finally the other large components such as the DB-9 connector for the serial port, leaving the ICs 'till the very last step to safeguard them from static discharge.
I settled on 7-7-7-10-10-12 hole slot spacing.



First job was to work out how many slots I should have on my backplane and how much space there should be between each slot, after trying a few different combinations I settled upon a configuration that would allow enough space for the standard modules to be placed side by side and at least two widely spaced slots to make it easy to fiddle around with my own designs. My backplane is based on a Maplin A63RL Veroboard with a 40 track by 61 hole layout (though only 60 holes are usable), which at £6.99 is the only 40 track piece of veroboard I could find without waiting weeks for delivery at an even remotely sensible price, the idea of etching my own backplane board did enter my head and the linear nature of the bus design would mean it would only have to be a single sided board, but that could well turn into a project in it's own right.

I reckoned that 7 slots would give me the best balance of expandability versus physical access, allowing me to configure the machine with the standard modules in place and have enough room to test one or two modules of my own or expose the bus for other experiments, such as connecting an Arduino Mega board to act as an EPROM emulator/supervisor or for trying out new ideas on a breadboard. The 'slots' themselves are readily available 40 pin female SIL headers, making it not only really easy to assemble the backplane, it also means that all the bus signals are all there in one line which minimises the potential for mistakes when prototyping new hardware.

With all that done I switched my iron on to warm up, gritted my teeth and prepared myself for 280 solder joints...