RC2014 Module Template

One of the things I am keen to promote about the RC2014 is that designing your own modules is very simple and straightforward.  The standard bus layout gives access to all of the basic signals that you are likely to need and the enhanced, or v2.0 layout builds on this with access to extra lines.  PCBs can, of course, be whatever shape and size you want, but you may have noticed that since around April 2016 I have settled on a standard shape for all new modules.

In this post, I want to discuss the past, present and future of the RC2014 bus, the physical modules, and what you might want to bare in mind when designing your own modules.

rc2014-v2-0-pcb-layout-png

 

Mechanical Layout

Firstly, to dispel a few myths about the shape of this; It was not designed to mimic an SD Card, a New Document icon or even an Apple II expansion card.  The shape was actually inspired by the Hollerith, or IBM punched cards with the cut off corner being an easy way to identify which end Pin 1 is.

The default size, 99.1mm x 49.9mm was chosen to fit within a standard 10cm x 5cm PCB manufacturing size, whilst also being within the 100mm limit of the free Eagle licence.  (Personally, I use and recommend KiCad, which does not have such limitations).

A drawback of the length is that there is only room for a 39 pin header.  To comfortable fit a standard 40 pin header it would need to be 104mm.  Therefore, the length is nominal and can be adjusted, either longer to accommodate the extra pin, or shorter to reduce PCB cost if necessary.

Height is also nominal – although a suggested ‘low profile’ height of 38.1mm could be used, which will allow for a small angled cut off to indicate pin 1 and also leave room for the mounting hole.

The 45° corner cut off not only signifies the orientation of the module, but would allow for a case to be designed to take advantage of this.

The mounting hole can also be used in case design to anchor all modules in place if necessary.

A KiCad template can be downloaded here (delete the .txt extension and rename it according to your KiCad project)

 

Bus layout

When the idea of the RC2014 was conceived, the goal was to get a Z80 based computer running on a backplane as simply as possible.  Some signals that were not required in the basic design, such as BUSRQ, were not bought out on to the backplane and were simply terminated on the CPU module.  As the RC2014 has developed, however, some of these signals are needed to support more advanced modules such as the SD Memory Dump Module.

The challenge has been to expand the bus to allow for this, whilst keeping things compatible with older modules and backplanes.  The solution is to add an ‘enhanced bus’ – a partial secondary line of pins above the original (on the module) and to the left of the original (on the backplane).  Standard right-angle header pins can be used for the original parts and double right-angle header pins used where the enhanced bus is needed.

Standard Bus

The original RC2014 only needed 34 pins to operate, with an extra 2 if the serial module is to talk to other modules.  This leaves 4 pins of the 40 pin header which users are free to use for whatever they want – however, be aware that using pin 40 will take the module over 100mm (see mechanical layout above)

Pin LabelDescription  Note
 1-16 A15 – A0 Address lines for up to 64k of addressable memory
 17Gnd0v power supply
185v5v power supply
19M1M1 control line from CPUActive Low
20ResetReset line for CPU and optionally other modulesActive Low
21ClockMain CPU clock signal and optionally other modules
22INTInteruptActive Low
23MREQMemory RequestActive Low
24WRWriteActive Low
25RdReadActive Low
26IORQI/O RequestActive Low
27 – 34D0 -D78 data lines
35TxSerial transmit
36RxSerial receive
37 – 39USR1-33 spare pins for user functions
40USR44th spare pin. Suggest it is not usedAvoid

 

Enhanced Bus

The enhanced, or v2.0 bus, adds to the standard bus to allow for backwards compatibility whilst giving access to other control lines not available on the original bus.  This is intended to be an optional bus, only used if it is required.  However, if it is used, the 10 pins in the center should be the minimum.  Having additional clock, reset, Tx and Rx lines opens the RC2014 up to more advanced peripherals and the extra 8 data lines would be required if a 16 bit CPU was used.

Pin LabelDescription  Note
 1-16 Not used
 17Gnd0v power supply
185v5v power supply
19RFSHM1 control line from CPUActive Low
20Reset2/PageSecondary reset or page line for other modulesActive Low
21Clock2Secondary clock line for other modules
22BUSACKBus AcknowledgeActive Low
23HALTHaltActive Low
24BUSRQBus RequestActive Low
25WAITWaitActive Low
26NMINon-maskable InteruptActive Low
27 – 34D8 -D15Additional 8 data lines (for 16bit CPU)
35Tx2Secondary serial transmit
36Rx2Secondary serial receive
37 – 39USR5-73 spare pins for user functions
40USR84th spare pin. Suggest it is not usedAvoid

 

Making your own modules – Designed for RC2014

If you wish to design your own modules, you are, of course, free to use whatever shape, size or pin arrangement you wish.  However, keeping to the above guidelines should give your modules compatibility with other RC2014 modules.  If your module may be of use to other RC2014 owners, please consider sharing your design or selling them yourself.  I’m happy to help you with this and to spread the word.  Note that “RC2014” is a registered trademark, so you are not allowed to call your module “RC2014 [thingy] Module” or use the RC2014 logo.  However, feel free to mark your modules as “Designed for RC2014”

If you need clarification on anything here, please feel free to contact me directly using the Contact Me link or start a thread on the RC2014-Z80 Google Group.