Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
boards:sbc:minimax8085:start [2017/05/31 13:24] skiselev |
boards:sbc:minimax8085:start [2018/12/12 07:58] (current) b1ackmai1er [Connector P4 - EXTENSION] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== Introduction ====== |
- | The MiniMax8085 project has been brewing for almost three years. Sometime in the spring of 2014 my kids and I visited local the surplus store, where my kids found some Intel 8000 series parts in the kids-fill-your-bucket area. Among these ICs were there: an 8085 CPU, an 8155 RAM with I/O ports and timer, a couple of 8255 PPIs, an 8282 latch, and some 27C128 UV EPROMs. It looked like a good start for an 8085 based computer that can be used to teach my kids some computer design and programming basics.\\ | + | {{ : |
I wanted the project to be simple to build, with a minimal number of components, but yet to be a fully functional single board computer (e.g. to include the memory and an input/ | I wanted the project to be simple to build, with a minimal number of components, but yet to be a fully functional single board computer (e.g. to include the memory and an input/ | ||
Line 22: | Line 22: | ||
===== Design Files ===== | ===== Design Files ===== | ||
- | Mini8085 - KiCad - 1.0.zip - KiCad schematic and PCB layout files \\ Mini8085 - Schematic - 1.0.pdf - Schematic in PDF format \\ Mini8085 - Board - 1.0.pdf - PCB layout in PDF format | + | {{: |
+ | {{: | ||
+ | {{: | ||
===== Design Description ===== | ===== Design Description ===== | ||
Line 92: | Line 94: | ||
^Pin^Signal^Description| | ^Pin^Signal^Description| | ||
|1|TRAP|Non-maskable interrupt input| | |1|TRAP|Non-maskable interrupt input| | ||
- | |2|3.073 MHz|CPU clock output| | + | |2|3.072 MHz|CPU clock output| |
|3|RST5_5|RST5.5 interrupt input| | |3|RST5_5|RST5.5 interrupt input| | ||
|4|INTR|Interrupt request input| | |4|INTR|Interrupt request input| | ||
Line 137: | Line 139: | ||
|1|Battery voltage, 3V - 5V| | |1|Battery voltage, 3V - 5V| | ||
|2|Ground| | |2|Ground| | ||
+ | |||
+ | \\ | ||
+ | |||
===== Simple Programmable Logic Device ===== | ===== Simple Programmable Logic Device ===== | ||
Line 142: | Line 147: | ||
==== SPLD Files and Programming ==== | ==== SPLD Files and Programming ==== | ||
- | As described above, the MiniMax8085 SBC uses a GAL16V8 simple programmable logic device (SPLD) to implement all the necessary glue logic. The SLPD images are available in Mini8085-SPLD-1.1.zip file in the downloads section below. Here are some files contained in that ZIP archive: \\ | + | As described above, the MiniMax8085 SBC uses a GAL16V8 simple programmable logic device (SPLD) to implement all the necessary glue logic. The SLPD images are available in {{: |
Mini8085-3.072MHz.pld - SPLD source code for a system with CPU running on 3.072 MHz or 6.144 MHz* clock frequency \\ | Mini8085-3.072MHz.pld - SPLD source code for a system with CPU running on 3.072 MHz or 6.144 MHz* clock frequency \\ | ||
Mini8085-3.9936MHz.pld - SPLD source code for a system with CPU running on 3.9936 MHz (4 MHz) or 8 MHz clock frequency \\ | Mini8085-3.9936MHz.pld - SPLD source code for a system with CPU running on 3.9936 MHz (4 MHz) or 8 MHz clock frequency \\ | ||
Line 170: | Line 175: | ||
8085Mini | 8085Mini | ||
</ | </ | ||
+ | |||
=== Pin Names Definition === | === Pin Names Definition === | ||
Line 227: | Line 233: | ||
=== Logic Equations - Memory Chip Select === | === Logic Equations - Memory Chip Select === | ||
- | These equations activate /ROMCS and /RAMCS signals: \\ | + | These equations activate /ROMCS and /RAMCS signals: \\ The /ROMCS is active (LOW) when 8085 IO/M signal is LOW, indicating a memory access, and either A15 is LOW (lower 32 KiB of memory address space) and SWAPMEM is inactive (HIGH), or then A15 is HIGH (upper 32 KiB of memory address space), and SWAPMEM is active (LOW). \\ The /RAMCS is active (LOW) when 8085 IO/M is LOW, indicating a memory access, and either A15 is HIGH (upper 32 KiB of memory address space) and SWAPMEM is inactive (HIGH), or then A15 is LOW (lower 32 KiB of memory address space), and SWAPMEM is active (LOW). |
- | The /ROMCS is active (LOW) when 8085 IO/M signal is LOW, indicating a memory access, and either A15 is LOW (lower 32 KiB of memory address space) and SWAPMEM is inactive (HIGH), or then A15 is HIGH (upper 32 KiB of memory address space), and SWAPMEM is active (LOW). \\ | + | |
- | The /RAMCS is active (LOW) when 8085 IO/M is LOW, indicating a memory access, and either A15 is HIGH (upper 32 KiB of memory address space) and SWAPMEM is inactive (HIGH), or then A15 is LOW (lower 32 KiB of memory address space), and SWAPMEM is active (LOW). | + | |
< | < | ||
Line 249: | Line 253: | ||
===== Bill of Materials ===== | ===== Bill of Materials ===== | ||
- | Link to the project on Mouser.com - View and order all components except of the 8085A CPU, the 8251A USART, and the PCB. \\ | + | Link to the project on Mouser.com - View and order all components except of the 8085A CPU, the 8251A USART, and the PCB. \\ Link to the project on OSHPark.com - View and order the MiniMax8085 PCB. |
- | Link to the project on OSHPark.com - View and order the MiniMax8085 PCB. | + | |
^Component Type^Reference^Description^Quantity^Possible Sources and Notes| | ^Component Type^Reference^Description^Quantity^Possible Sources and Notes| | ||
Line 256: | Line 259: | ||
|Capacitor|C1 - C11|0.1 uF ceramic, 5.08 mm lead spacing|11|Mouser 810-FK28X7R1H104K, | |Capacitor|C1 - C11|0.1 uF ceramic, 5.08 mm lead spacing|11|Mouser 810-FK28X7R1H104K, | ||
| |C12|1 uF ceramic, 5.08 mm lead spacing|1|Mouser 810-FK24X5R1C105K| | | |C12|1 uF ceramic, 5.08 mm lead spacing|1|Mouser 810-FK24X5R1C105K| | ||
- | | |C13|10 uF ceramic, 5.08 mm lead spacing|1|Mouser 810-FK24X5R1C106K \\ | + | | |C13|10 uF ceramic, 5.08 mm lead spacing|1|Mouser 810-FK24X5R1C106K \\ Note: Can be replaced with tantalum or electrolytic capacitors| |
- | Note: Can be replaced with tantalum or electrolytic capacitors| | + | | |C14, C15|33 pF ceramic, 5.08 mm lead spacing|2|Mouser 810-FK28C0G1H330J \\ Note: Install only when using CMOS 80C85A CPU. Do not install when using NMOS 8085A| |
- | | |C14, C15|33 pF ceramic, 5.08 mm lead spacing|2|Mouser 810-FK28C0G1H330J \\ | + | |
- | Note: Install only when using CMOS 80C85A CPU. Do not install when using NMOS 8085A| | + | |
|Connector|P1|DC jack|1|Mouser 806-KLDX-0202-A; | |Connector|P1|DC jack|1|Mouser 806-KLDX-0202-A; | ||
| |P2, JP1 - JP3|3×1 pin header|4|Mouser 649-69190-103HLF, | | |P2, JP1 - JP3|3×1 pin header|4|Mouser 649-69190-103HLF, | ||
| |P3|DE9M, right angle PCB mount|1|Mouser 806-K22X-E9P-N, | | |P3|DE9M, right angle PCB mount|1|Mouser 806-K22X-E9P-N, | ||
- | | |P4|20×2 pin socket|1|Mouser 517-929852-01-20-RB \\ | + | | |P4|20×2 pin socket|1|Mouser 517-929852-01-20-RB \\ Note: Optional, used for extension bus| |
- | Note: Optional, used for extension bus| | + | | |P5|2 pin header with friction lock|1|Mouser 571-6404562, |
- | | |P5|2 pin header with friction lock|1|Mouser 571-6404562, | + | |
- | Note: Optional, used for SRAM battery backup \\ | + | |
- | Corresponding female connector: Mouser 571-770602-2; | + | |
- | Contacts (2 contacts needed): Mouser 571-770666-1; | + | |
- | It is recommended to use a polarized header to avoid incorrect power polarity.| | + | |
|Diode|D1|1N4148|1|Mouser 512-1N4148, 771-1N4148-T/ | |Diode|D1|1N4148|1|Mouser 512-1N4148, 771-1N4148-T/ | ||
- | |LED|D2|LED Indicator, Dialight 566-0206F|1|Mouser 645-566-0206F \\ | + | |LED|D2|LED Indicator, Dialight 566-0206F|1|Mouser 645-566-0206F \\ Note: Can be replaced with a standard 3 mm or 5 mm LED| |
- | Note: Can be replaced with a standard 3 mm or 5 mm LED| | + | |
|Resistor|R1|33 Ohm, 1/4 W|1|Mouser 291-33-RC| | |Resistor|R1|33 Ohm, 1/4 W|1|Mouser 291-33-RC| | ||
| |R2|470 Ohm, 1/4 W|1|Mouser 291-470-RC; Jameco 690785| | | |R2|470 Ohm, 1/4 W|1|Mouser 291-470-RC; Jameco 690785| | ||
| |R3|100 kOhm, 1/4 W|1|Mouser 291-100K-RC| | | |R3|100 kOhm, 1/4 W|1|Mouser 291-100K-RC| | ||
|Resistor Array|RR1, RR2|4.7 kOhm, 6 pin, bussed resistor array|2|Mouser 264-4.7K-RC, | |Resistor Array|RR1, RR2|4.7 kOhm, 6 pin, bussed resistor array|2|Mouser 264-4.7K-RC, | ||
- | |Switch|SW1|Tactile switch, right angle|1|Mouser 653-B3F-3100, | + | |Switch|SW1|Tactile switch, right angle|1|Mouser 653-B3F-3100, |
- | Note: Switches can have different actuator length. You might want to select the switch according your own preferences, | + | |Crystal|Y1|6.144 MHz quartz resonator for 3 MHz CPU \\ 8 MHz quartz resonator for 4 MHz CPU \\ 9.8304 MHz quartz resonator for 5 MHz CPU \\ 12.288 MHz quartz resonator for 6 MHz CPU \\ 16 MHz quartz resonator for 8 MHz CPU|1|Mouser 520-61-18-4XEN (6.144 MHz), 520-HCU983-20 (9.8304 MHz), 695-HC49US-122-U (12.288 MHz), 815-ABL-16-B2 (16 MHz); Unicorn Electronics 6.144 MHz or 9.8304 MHz according to desired CPU clock frequency| |
- | Jameco 1953575| | + | |IC|U1|80C85A, |
- | |Crystal|Y1|6.144 MHz quartz resonator for 3 MHz CPU \\ | + | | |U2|82C51A, or 8251A USART|1|Jameco 52652 (8251A), Unicorn Electronics 82C51 or 8051; eBay (search for 82C51 or 8251 USART, or 580VV51 / 580ВВ51 for Soviet 8251 clone) \\ Note: Use CMOS part - 82C51A for lower power consumption and higher speed| |
- | 8 MHz quartz resonator for 4 MHz CPU \\ | + | | |U3|28C256 EEPROM, 27C256 UV EPROM, 27C128 UV EPROM, 27128 UV EPROM, 27C64 UV EPROM, 2764 UV EPROM|1|Mouser 556-AT28C25615PU; |
- | 9.8304 MHz quartz resonator for 5 MHz CPU \\ | + | |
- | 12.288 MHz quartz resonator for 6 MHz CPU \\ | + | |
- | 16 MHz quartz resonator for 8 MHz CPU|1|Mouser 520-61-18-4XEN (6.144 MHz), 520-HCU983-20 (9.8304 MHz), 695-HC49US-122-U (12.288 MHz), 815-ABL-16-B2 (16 MHz); Unicorn Electronics 6.144 MHz or 9.8304 MHz according to desired CPU clock frequency| | + | |
- | |IC|U1|80C85A, | + | |
- | Note: Use CMOS part - 80C85A for lower power consumption| | + | |
- | | |U2|82C51A, or 8251A USART|1|Jameco 52652 (8251A), Unicorn Electronics 82C51 or 8051; eBay (search for 82C51 or 8251 USART, or 580VV51 / 580ВВ51 for Soviet 8251 clone) \\ | + | |
- | Note: Use CMOS part - 82C51A for lower power consumption and higher speed| | + | |
- | | |U3|28C256 EEPROM, 27C256 UV EPROM, 27C128 UV EPROM, 27128 UV EPROM, 27C64 UV EPROM, 2764 UV EPROM|1|Mouser 556-AT28C25615PU; | + | |
- | Note: EEPROM parts are recommended. UV lamp needed to erase UV EPROMs| | + | |
| |U4|62256 SRAM|1|Mouser 913-AS6C62256-55PCN; | | |U4|62256 SRAM|1|Mouser 913-AS6C62256-55PCN; | ||
| |U5|GAL16V8, | | |U5|GAL16V8, | ||
| |U6|74HC573, | | |U6|74HC573, | ||
| |U7|MAX202, MAX232A|1|Mouser 595-TRS202ECN, | | |U7|MAX202, MAX232A|1|Mouser 595-TRS202ECN, | ||
- | | |U8|DS1210|1|Mouser 700-DS1210; Jameco 114198; Unicorn Electronics DS1210 \\ | + | | |U8|DS1210|1|Mouser 700-DS1210; Jameco 114198; Unicorn Electronics DS1210 \\ Note: Optional, used for SRAM battery backup. If not populated - install two wire jumpers instead as shown on the PCB silk screen| |
- | Note: Optional, used for SRAM battery backup. If not populated - install two wire jumpers instead as shown on the PCB silk screen| | + | |
|IC Socket|U1|40 pin 600 mil DIP socket|1|Mouser 517-4840-6000-CP, | |IC Socket|U1|40 pin 600 mil DIP socket|1|Mouser 517-4840-6000-CP, | ||
| |U2 - U4|28 pin 600 mil DIP socket|3|Mouser 517-4828-6000-CP, | | |U2 - U4|28 pin 600 mil DIP socket|3|Mouser 517-4828-6000-CP, | ||
Line 334: | Line 319: | ||
* LED D2 - Can be replaced by a 3 mm LED with pins bent at 90 degrees. | * LED D2 - Can be replaced by a 3 mm LED with pins bent at 90 degrees. | ||
- | ==== = Firmware and Software | + | ===== Firmware and Software ===== |
==== Monitor ==== | ==== Monitor ==== | ||
- | MiniMax8085 uses MON85 Software Debug Monitor For the 8085/8080 written by Dave Dunfield. Specifically it was tested with the improved by Roman Borik version 1.2 (download at the bottom of the page). This version adds support for undocumented 8085 instructions and flags. | + | {{ : |
==== Tiny BASIC ==== | ==== Tiny BASIC ==== | ||
- | The famous Tiny BASIC 2.0 written by Li-Chen Wang and modified by Roger Rauskolb, runs on MiniMax8085 with very little modifications: | + | The famous Tiny BASIC 2.0 written by Li-Chen Wang and modified by Roger Rauskolb, runs on MiniMax8085 with very little modifications: |
- | For your enjoyment the original Tiny BASIC article from the December 1976 issue of Interface Age magazine - TinyBASIC-2.0.pdf, | + | |
====== Frequently Asked Questions and Troubleshooting ====== | ====== Frequently Asked Questions and Troubleshooting ====== |