The myCPU design is based on through hole components instead SMD because of its ease of assembly and soldering, they are easier to buy and manipulate, especially for beginners, and makes replacement easy in case of an assembly error or malfunction.
No components will be provided with the kit because the difficult to handle a component catalog and storage for a particular who don’t have a dedicated store for the project. You can buy all the components at Chinese stores, assuming the risk for the lack of quality, or at the official components stores which are more expensive stores.
The risk of lack of quality of Chinese components is real and could cause some issues difficult to debug and check, keep it in mind when you take your decision where to buy.
All my prototypes were built using Chinese components and the final version works fine. Really, I had several problems with some of the IC provided, but in general it has enough quality for a DIY project, and it has a lower price to buy replacements. Keep in mind, if you are beginner or even you don’t, is easy make a mistake with the orientation of the IC and burn some of them, is preferably having to buy cheap replacements on Chinese stores.
In case you are experienced hobbyist or engineer you can buy all the components in official stores if you want but think that some TTL families could be hard to find at those stores because of the obsolete nature of the TTL technology.
TTL ICs are mostly obsolete now days and some of them are difficult to find on official stores, so, Chinese stores are the only place to buy them.
The next list includes the common types of components you can find in the myCPU design:
- Resistors 1/4w
- Resistor arrays
- TTL ICs
- CMOS ICs
- Ceramic or Tantalum capacitors
- Electrolytic capacitors
- Switches and Buttons
- LED bar displays
- 4 digit 7 segments display
- Power Jack
- Variable, Trimmer resistors, and Potentiometers
- IC and memory Sockets
- Board pins headers
- Board female sockets
- IDC female connectors and flat wire
TTL Tips and Tricks
1) TTL inputs pins of some logic ICs are connected to pull-down resistor 330ohm to GND, and some other inputs need pull-up resistor of 1k to VCC to keep high value by default.
Resistors
Common values of resistors are used in the myCPU design: 220Ω, 330Ω, or 1K are the most used values. The 1/4W size resistor was chosen not for its dissipation capability but for its most manageable size.
Resistor Arrays
A resistor array is used for limited or pull-down resistors, to save space and avoid the need to solder a lot of identical resistors.
TTL ICs
The myCPU design is based mostly on TTL logic ICs, is an obsolete technology and probably does not have the best electrical behaviour but is more friendly and electrical tolerant for beginners, students, and hobbyists.
TTL family were the most common digital components on its time and probably are the best choice to build an experimental device for learning. Although could be more difficult to find and buy. CMOS technology could be a better choice, but it breaks the compatibility with the learning path of the Ben’s Eater video lectures. In the other hand those TTL ICs are easy to find in Chinese components stores at a cheap price.
Up to 15 types of TTL ICs are used in the myCPU design, you can find all references in the BOM list and their corresponding datasheets at the downloads page.
CMOS ICs
Are used basically for memories or special components like the CD4094 shift register on the EEProm programmer.
In the myCPU design you can find the AT28C64 EEProm memories mainly for decoders, replacing the combinational decoding logic. To avoid the need to use a bunch of different capacity sizes of EEProm memories, I decided to use the same type of EEProm memory for all purposes which need an EEProm and chose the 64K version.
As an alternative to the SRAM module based on TTL 74LS219 SRAM IC, I’ve planned to design a SRAM module based on HM-6116 (2K x 8) SRAM memory or in the future a bigger SRAM module based on the HM-62256A (32K x 8) or the W24129A (16K x 8).
You can find all related datasheets at the downloads page.
Voltage Regulators
A 7805 voltage regulator is used in the myCPU design to provide supply power to modules, is located on the BUS main board.
With the 7805 is mandatory the use of a heatsink because of the heat generated when it is working. The 7805 generate a lot of heat. A good dissipation is needed. The maximum height of the heatsink is up to 10mm because of the separation between the BUS main board and the module board. For heatsinks, I recommended a size of 19x10x10 which is very common for TO-220 package.
A TO-220 or plastic encapsulated TO-220F could be used. I recommended use the isolated TO-220F to avoid the need to use a silicon heat transfer pad.
Capacitors
Ceramic capacitors are used mostly for decoupling. Preferably try to use tantalum capacitors for its better electrically behaviour. The most common use is as decoupling capacitors for the TTL ICs, which is mandatory when use TTL and recommended by the manufacturer. 10nF and 100nF are the most common values, especially the last one for decoupling. Other values are used mainly on the Clock module to avoid noise and signal ripple.
Electrolytic capacitors are used mainly for power supply filtering purposes. You can find one 10µF capacitor on each module and a 0.47 µF or 220 µF, depending of your preferences, in each voltage regulator on the BUS module. Feel free to change these values if you consider other values better.
Other electrolytic capacitors are used to setup 555 timers in the Clock and Display modules.
Switches and Buttons
DIP switches are used, mainly to provide setup or testing capabilities. DIP switches of 4, 8 and 12 positions are used. The 12 positions switch are used only in the CSM (Control Signal Manager) module.
For on/off behavior, a common 3 pins mini slide switches are used.
Push buttons are used with 6 mm and 12 mm sizes.
LEDs and LED bar displays
Mostly 3 mm LED are used on display modules, by its small size, to show status information and data. Some 5 mm LED are used for other purposes.
I used different LED colours to build different colour displays following a colour pattern to keep a functional correspondence with the LED displays, I recommended you follow the same pattern for an easy debugging view.
- RED: BUS, Instruction Register, MAR, Output Register, Flags
- GREEN: General purpose registers
- YELLOW: SRAM, Program Counter, Sequencer counter
- BLUE: ALU, CSM, Sequencer states
8 segments LED bar displays are used in the myCPU design to show the current data on the BUS. Later in the next release will be used the 8 segments LED bar displays instead LED 3mm on LED displays to save space and because with two of them you can show either 8 or 16 bits.
There are some places where LED are assembled directly to the board, mainly because it shows status or functional information not data. The purpose of LED displays is to show the data movements during the execution process.
4 digits 7 segment displays
An alternative to LED displays is the Decimal Display module, this module is based on a 4 digits 7 segments display and a decoder to transform a binary to decimal conversion to 7 segments display codes.
The display component used in the myCPU design is a common cathode 4 digits 7 segments display of 0.36 inch.
Power Jack
A common horizontal 3 pin 2.1 mm PCB mount power jack is used to connect the power source.
Variable, Trimmer Resistors and Potentiometers
This kind of components are used in the clock module and decimal display module.
Variable resistors are used in the decimal display module, are horizontal mount with 3 pin.
Potentiometer is used on the clock module to control the timer speed, is a 3 pin vertical mount type.
Trimmer resistor is used to adjust the duty cycle of 555 timer in Astable mode, is a vertical mount 3 pin type.
IC and Memory sockets
The myCPU design uses a lot of IC sockets. I recommend you use a socket wherever you must place an IC.
Never assembly ICs directly on the board because is very easy make a mistake with the orientation of the IC on the board. Using a socket lets you an easy replacement in case of wrong orientation or an IC failure.
Sizes uses in the myCPU design are:
- 8 pins for 555 timers
- 14, 16, 20 for common login ICs
- 28 pins wider for EEProms of families AT28C64 or AT28C256
- 24 pins wider for 6116 SRAM modules
A ZIF (lock seat) socket is used for the EEProm programmer.
Board pin headers
Straight and right-angled dual row pin headers are used to connect BUS modules in chain and to plug-in modules to the BUS module board.
I recommended buy a 2x40 strips and cut later to the right length.
Right-angled pin headers are used to connect BUS modules and create the chained BUS module structure.
Vertical pin headers are used on the individual modules to plug-in to the BUS module board and for direct connectivity between modules.
The most common sizes are: 2x4, 2x8, 2x12, 2x16 and few other sizes.
Board female sockets
Used to let connect main BUS modules and build the main BUS module chain structure and let the BUS main board to be plugged by the modules.
3 common sizes are used: 2x8, 2x16 for the module plug connectors and 2x12 for the Output connector.
The 2x16 size could be difficult to find in Chinese stores, so I recommended to buy the 2x20 size and remove the last 8 pins from the right side as you can see on the picture.
IDC female sockets and flat wire
Used to direct connection between modules and when you build a horizontal layout to connect left and right bus modules chains.
You must build custom length IDC connector wires, to get a clean module interconnection. So, you must buy IDC connector and flat wire separately. Also a IDC connector crimp tool would be needed for easily fixed the wire to the connector. See The Tools page for a better reference.
Custom IDC connectors
For the myCPU design you`ll need to build 6 custom IDC wire connectors of different sizes:
- MAR to SRAM module: 2x4 and 14 mm
- Instruction Register to Instruction Decoder: 2x4 and 12 mm
- Sequencer to Instruction decoder: 2x4 and 6.6 mm
- Instruction decoder to CSM: 2x12 and 4.6 mm
- Accumulator to ALU: 2x4 and 5 mm
- Register B to ALU: 2x4 and 5 mm