Single Board Computer Building Instructions
Important Note
If you are going to build your own DCJ11 SBC based on this design then I recommend that you decide from the very beginning whether you are going to implement the variant using TTL logic devices or the variant using a simple GAL16V8 for the glue-logic. Please read the corresponding articles.
Another decision refers to the UART. As a standard the DCJ11 SBC uses a DC319 as the on board UART used as the standard console. Be aware that the DC319 requires a 614.4kHz clock, unfortunately canned crystal oscillators with 614.4kHz are no longer produced. In other words using a DC319 can be challenging.
Therefore I have published two CDP6402 adapters which are a plug-in replacement for the DC319. There is an adapter using a GAL16V8 for the glue logic to emulate a DC319 with a CDP6402 and an adapter using simple TTL logic, however due to space constraints it uses SOIC SMD packages for the TTL logic. SOIC packages have a pitch of 1.27mm, half the pitch of through hole components and can still be soldered by hand. To avoid solder bridges and bad solder joints I recommend to use a good amount of solder flux. Using flux makes soldering SMDs much easier.
This said there are some differences between using a DC319 and a CDP6402 as the console. First the CDP6402 does not support the jumpers to select the baud-rate, even more to avoid any short circuit I recommend to not solder the pin headers for the baud rate jumpers when using a CDP6402 via the adapter as the top of the pin header are extremely close to the adapter PCB and if you are using pin headers with slightly longer pins the make contact. As you cannot select the baud rate using a CDP6402 they are in any case useless. The baud rate of the CDP6402 is always the crystal clock divided by 16. I.e. with a 614.4kHz crystal clock you will have a console with 38400baud, the same as the maximum baud rate of the DC319. However as said, the 614.4kHz crystals are no more produced. On the other side, the CDP6402 support a clock rate of up to 2MHz. This gives you the opportunity to use a 1.8432MHz standard clock which are still in production and about 1USD per piece.
One important difference is also the BRK signal. The CDP6402 with the glue-logic provided by the adapters is not capable of generating or detecting a BRK signal. The BRK signal is used in case you want to HALT the PDP-11 using a break on the console, but this feature has mostly been disabled, as it would stop a system when somebody accidently hits the BREAK key on the console. This was only used by remote systems to allow stopping a stuck application. More important is that the BRK signal is used by the TU-58 tape drive and the TU-58 tap drive and the TU-58 emulators require that the serial interface can generate a BRK signal to reset the communication.
Building Instructions
In the following article I try to explain the building of the DCJ11 SBC with as much detail as possible. Note that there are several options for the SBC which are explained in further articles. Here I will just describe the basic setup of the SBC. You can add the optional extensions later. I usually use the CMOS version of the TTL logic families. You can either use the HCT, AHCT or ACT family, they are all fast enough. CMOS has the advantage that they consume less power and readily available.
Prepare the PCB
Often PCB edges need to be cleaned as there are leftover from breaking points from the cutting process.
Installing the Components
All resistors and capacitors are SMD. The component size is 0805 and can be soldered by hand. SMD components should always be placed and soldered first as later TH devices may block the space needed to put the solder iron to solder SMD parts.
There are no components on the back side, all components are on the front side. So we are starting with the SMD resistors and capacitors in the 0805 package.
Now we can solder the larger SMD devices, the Tantalum Capacitors C20-23. At the same time you can solder the sockets and the tactile switch. Sockets are mandatory only for the TTL logic devices U4, U7, U8, U10, U13, U14, the GAL U18
- U4 74HCT00
- U7 74HCT02
- U8 74HCT138
- U10 74HCT04
- U13 74HCT153
- U14 74HCT139
- U18 GAL16V8
and the DCJ11. I recommend sockets for the RAM and the DC319. And you must not use sockets for U3, U6 and U9
- U9 74HCT20
- U6 74HCT175
- U3 74HCT14
as they are soldered directly to the PCB so they fit beneath the DCJ11. For the DCJ11 I use single row machined pin sockets. I also use single pins for the crystal, so I can play with different clock rates.
Next is the socket required for the DCJ11. You should use high quality single inline sockets. You need two rows with 30 pins each. Most single inline socket strips can be shortened so in case you don’t find strips with exact 30 pins you can always cut them. An alternative are individual gold plated socket pins.
When inserting the DCJ11 pay caution to the orientation. Pin 1 needs to go to the boarder row on the PCB. Although the power pins of the DCJ11 are symmetrical the DCJ11 still might be affected. Pin 1 on the ceramic body is marked and there is also a 1 on the PCB where Pin 1 has to go.
Sockets are optional for the 74HCT574 and the 74HCT541. Here I did not use any sockets. Note that I already soldered the solder jumpers JP1 and JP2 to enter ODT when the DCJ11 is reset.
Note Version 1.3.1 has the solder jumpers already bridged to enter ODT. If you want to change this later you will have to cut open the bridged jumper and solder the desired power-up mode.
If U18 is equipped the ICs U7, U10, U4, U8, U13 and U14 must not be equipped and vice versa. If you decide to use a GAL16V8 you don’t need the sockets for the other ICS as shown in the above foto. Also don’t forget the canned oscillator and the pin headers for the USB-TTL/Serial adapter and the baud-rate jumpers. If you want to power the SBC with an external power-supply make sure that you did not install the zero-Ohm resistor R17 or when using pin headers for JP3 do not put the jumper. At the top left you can solder a screw header for your 5V power supply.
Now you should check for almost zero power consumption. It should definitively be much less than 50mA.
Note that write is gated using the SCTL signal from the DCJ11. This signal is very short, e.g. only one clock cycle. The write signal is used by the RAM and by the DC319. RAM with a maximum access time of 85ns like the HM628128-8 support a write pulse as low as 55ns. This is pretty much the pulse width when the DCJ11 is operated with 18MHz, the official maximum clock rate. The specification of the DC319 state a minimal pulse on WEL of 100ns, but even when running the DCJ11 with a 20MHz crystal I have not seen any issues. However when using the alternative console using a CDP6402C then you might see problems with clock rates higher than 10MHz.
As a preliminary solution you can solder a wire bridge between CONT to SCTL. Until I have my first expansion cards, I just did that on the SBC without card edge slot. This will extend SCTL by 2 clock cycles.
The recommended clock rate for the baud-rate crystal for a DC319 is 614.4kHz. Canned crystal oscillators with this frequency are no longer produced and you need to find NOS or used devices. They are available in DIP-8 or DIP-14 cases.
Next you can see the same DCJ11 SBC using TTL logic devices instead of the GAL, just to make sure it will work without having to program a SPLD.
The maximum communication speed the DC319 supports is 38'400baud. You can set the baud-rate using three jumpers near the DC319.
For the serial connection I have not installed level shifters. The SBC requires a USB to Serial/TTL adapter. That’s because I use them a lot in my electronic projects to communicate with microcontrollers. Either I use USB to Serial/TTL cables from FTDI or my own FT230X based adapters.
Total power consumption is less than 140mA so it is save to use the adapter as power source. Be careful there is no protection against wrong connections. Per default the VCC pin of the adpater interface is not connected to VCC of the PCB. You can either use a jumper or add a zero Ohm resistor. There is a power connector to provide more power.
When inserting the DCJ11 make sure pin 1 is located correctly. Even so the power pins are located in a way that the orientation will not affect the power pins of the DCJ11 some outputs may conflict with other circuits on the PCB and hence your DCJ11 might be destroyed. Pin 1 is marked on the DCJ11 and on the PCB.
MR of the DC319 and INIT of the DCJ11 are timed equally, chances are that you might not see the first prompt on the screen when connecting the SBC, use space bar which should make ODT to repeat the prompt and a question mark sign as space is not a valid ODT command.
Errata
PCB Version 1.3 of the SBC has no connection for the TEST input of the DC319 and therefore it is floating. This is bad. When this input is high then all outputs of the DC319 will be disabled and the SBC will not start-up correctly. Therefore a small wire is required between the TEST input and the INIT input. I.e. a wire that runs between pin 39 and pin 24, to connect the TEST input to a proper reset signal as it does on KDJ11 CPU board.
Note Version 1.3.1 has been fixed to include the connection.
Revision 1.3.2
I decided to make on other revision to include some additional signals for the GAL
- NXM
- CONT
- MISS
The revision is just a KiCad project, I have not made any PCBs so far. But I added the new connections with individual wires on the PCB based on Version 1.3, the same as I did with the missing connection that came with Revision 1.3.1. Now electrically my DCJ11 SBC is upgraded to revision 1.3.2 and therefore I have now removed the temporary bridge between CONT and SCTL and soldered the card edge holder. As now the previously connected signals are available at the socket U18 for the GAL I can now plug in a small wire bridge to increase the length of the write pulse. In the picture shown I left the TTL glue logic
For the various versions using a GAL see the article about the GAL.