Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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   :boards:sbc:minimax8085:assembled_board.jpg?nolink&513x600   ======+====== 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.\\+{{  :boards:sbc:minimax8085:assembled_board.jpg?nolink&400x468}}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/output device, for example a UART) with an extension bus. I checked the Internet for existing homebrew 8085 computers and found Roman Fülek's NCB85 and NCB85v2 projects, and Glitch Works 8085 projects. While I liked these projects, they didn't quite meet my project design goals: 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/output device, for example a UART) with an extension bus. I checked the Internet for existing homebrew 8085 computers and found Roman Fülek's NCB85 and NCB85v2 projects, and Glitch Works 8085 projects. While I liked these projects, they didn't quite meet my project design goals:
  
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+{{:boards:sbc:minimax8085:mini8085_-_kicad_-_1.0.zip|Mini8085 - KiCad - 1.0.zip}}  - KiCad schematic and PCB layout files \\ 
 +{{:boards:sbc:minimax8085:mini8085_-_schematic_-_1.0.pdf|Mini8085 - Schematic - 1.0.pdf}}  - Schematic in PDF format \\ 
 +{{:boards:sbc:minimax8085:mini8085_-_board_-_1.0.pdf|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 {{:boards:sbc:minimax8085:mini8085-spld-1.2.zip|Mini8085-SPLD-1.2.zip}}  file in the downloads section below. Here are some files contained in that ZIP archive: \\
 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      ;                second line: any text (max. 8 char.) 8085Mini      ;                second line: any text (max. 8 char.)
 </code> </code>
 +
 === 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).+
  
 <code> <code>
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, 80-C323C104K5R; Jameco 25523| |Capacitor|C1 - C11|0.1 uF ceramic, 5.08 mm lead spacing|11|Mouser 810-FK28X7R1H104K, 80-C323C104K5R; Jameco 25523|
 | |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; Jameco 101178| |Connector|P1|DC jack|1|Mouser 806-KLDX-0202-A; Jameco 101178|
 | |P2, JP1 - JP3|3×1 pin header|4|Mouser 649-69190-103HLF, 649-78229-103HLF; Jameco 109576| | |P2, JP1 - JP3|3×1 pin header|4|Mouser 649-69190-103HLF, 649-78229-103HLF; Jameco 109576|
 | |P3|DE9M, right angle PCB mount|1|Mouser 806-K22X-E9P-N, 806-K22X-E9P-N-99 (teal color), 571-7478404; Jameco 104943, 614459, 614432| | |P3|DE9M, right angle PCB mount|1|Mouser 806-K22X-E9P-N, 806-K22X-E9P-N-99 (teal color), 571-7478404; Jameco 104943, 614459, 614432|
-| |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, 571-3-641126-2, 571-3-641215-2; Jameco 232266, 613931 \\ Note: Optional, used for SRAM battery backup \\ Corresponding female connector: Mouser 571-770602-2; Jameco 234798 \\ Contacts (2 contacts needed): Mouser 571-770666-1; Jameco 234923, 736501; \\ It is recommended to use a polarized header to avoid incorrect power polarity.|
-| |P5|2 pin header with friction lock|1|Mouser 571-6404562, 571-3-641126-2, 571-3-641215-2; Jameco 232266, 613931 \\ +
-   Note: Optional, used for SRAM battery backup \\ +
-   Corresponding female connector: Mouser 571-770602-2; Jameco 234798 \\ +
-   Contacts (2 contacts needed): Mouser 571-770666-1; Jameco 234923, 736501; \\ +
-   It is recommended to use a polarized header to avoid incorrect power polarity.|+
 |Diode|D1|1N4148|1|Mouser 512-1N4148, 771-1N4148-T/R; Jameco 36038, 179215| |Diode|D1|1N4148|1|Mouser 512-1N4148, 771-1N4148-T/R; Jameco 36038, 179215|
-|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, 652-4306R-1LF-4.7K| |Resistor Array|RR1, RR2|4.7 kOhm, 6 pin, bussed resistor array|2|Mouser 264-4.7K-RC, 652-4306R-1LF-4.7K|
-|Switch|SW1|Tactile switch, right angle|1|Mouser 653-B3F-3100, 653-B3F-3152, 706-95C06A2RAT, 706-95C06C2RAT, 706-95C06F2RAT \\ +|Switch|SW1|Tactile switch, right angle|1|Mouser 653-B3F-3100, 653-B3F-3152, 706-95C06A2RAT, 706-95C06C2RAT, 706-95C06F2RAT \\ Note: Switches can have different actuator length. You might want to select the switch according your own preferences, for example the enclosure type you want to use, and whatever you want the reset button to stick out of the enclosure or to stay hidden inside. \\ Jameco 1953575| 
-   Note: Switches can have different actuator length. You might want to select the switch according your own preferences, for example the enclosure type you want to use, and whatever you want the reset button to stick out of the enclosure or to stay hidden inside. \\ +|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, 8085A-2, or 8085A CPU|1|Jameco 52071 (8085A-2, 5 MHz), 52062 (8085A, 3 MHz); Unicorn Electronics 80C85, 8085A-2, or 8085A; eBay (search for 80C85 or 8085 CPUs, or IM1821VM85A / ИМ1821ВМ85А for Soviet 80C85 clone) \\ Note: Use CMOS part - 80C85A for lower power consumption| 
-|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; Jameco 74843 (28C256 EEPROM), 39714 (27C256 UV EPROM); Unicorn Electronics 28C256-15 (EEPROM), 27C256 or 27C128 (UV EPROM) \\ Note: EEPROM parts are recommended. UV lamp needed to erase UV EPROMs|
-   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, 8085A-2, or 8085A CPU|1|Jameco 52071 (8085A-2, 5 MHz), 52062 (8085A, 3 MHz); Unicorn Electronics 80C85, 8085A-2, or 8085A; eBay (search for 80C85 or 8085 CPUs, or IM1821VM85A / ИМ1821ВМ85А for Soviet 80C85 clone) \\ +
-   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; Jameco 74843 (28C256 EEPROM), 39714 (27C256 UV EPROM); Unicorn Electronics 28C256-15 (EEPROM), 27C256 or 27C128 (UV EPROM) \\ +
-   Note: EEPROM parts are recommended. UV lamp needed to erase UV EPROMs|+
 | |U4|62256 SRAM|1|Mouser 913-AS6C62256-55PCN; Jameco 391822; Unicorn Electronics 62256LP-70 (or any other 62256)| | |U4|62256 SRAM|1|Mouser 913-AS6C62256-55PCN; Jameco 391822; Unicorn Electronics 62256LP-70 (or any other 62256)|
 | |U5|GAL16V8, ATF16V8|1|Mouser 556-AF16V8B15PU, Jameco 37452; Unicorn Electronics 16V8 (10 ns, 12 ns, or 15 ns versions would work. Make sure to contact the seller and ask specifically for Lattice GAL16V8 part. iCT PEEL16V8 parts are not supported by MiniPro TL866CS programmer)| | |U5|GAL16V8, ATF16V8|1|Mouser 556-AF16V8B15PU, Jameco 37452; Unicorn Electronics 16V8 (10 ns, 12 ns, or 15 ns versions would work. Make sure to contact the seller and ask specifically for Lattice GAL16V8 part. iCT PEEL16V8 parts are not supported by MiniPro TL866CS programmer)|
 | |U6|74HC573, 74ALS573, 74F573|1|Mouser 595-SN74HC573AN, 595-SN74HC573ANE4, 595-CD74HC573E, 595-SN74ALS573CN, 595-SN74F573N; Jameco 46076 (74HC573); Unicorn Electronics 74HC573, 74ALS573, 74F573; eBay (search for 74HC573, 74ALS573, 74F573, or KR1533IR33 / КР1533ИР33 for Soviet 74ALS573 clone)| | |U6|74HC573, 74ALS573, 74F573|1|Mouser 595-SN74HC573AN, 595-SN74HC573ANE4, 595-CD74HC573E, 595-SN74ALS573CN, 595-SN74F573N; Jameco 46076 (74HC573); Unicorn Electronics 74HC573, 74ALS573, 74F573; eBay (search for 74HC573, 74ALS573, 74F573, or KR1533IR33 / КР1533ИР33 for Soviet 74ALS573 clone)|
 | |U7|MAX202, MAX232A|1|Mouser 595-TRS202ECN, 701-SP202ECP-L, 700-MAX202CPE, 700-MAX232ACP; Jameco 1800552, 142535; Unicorn Electronics MAX202| | |U7|MAX202, MAX232A|1|Mouser 595-TRS202ECN, 701-SP202ECP-L, 700-MAX202CPE, 700-MAX232ACP; Jameco 1800552, 142535; Unicorn Electronics MAX202|
-| |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, 649-DILB40P223TLF; Jameco 41111| |IC Socket|U1|40 pin 600 mil DIP socket|1|Mouser 517-4840-6000-CP, 649-DILB40P223TLF; Jameco 41111|
 | |U2 - U4|28 pin 600 mil DIP socket|3|Mouser 517-4828-6000-CP, 649-DILB28P223TLF; Jameco 40301| | |U2 - U4|28 pin 600 mil DIP socket|3|Mouser 517-4828-6000-CP, 649-DILB28P223TLF; Jameco 40301|
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   :boards:sbc:minimax8085:mon85.png?nolink&600x392  =====+===== 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.+{{  :boards:sbc:minimax8085:mon85.png?direct&600x392}}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: {{:boards:sbc:minimax8085:mon85-v12-mini85.zip|mon85-v12-mini85.zip}}. 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 8251 USART I/O address needs to be updated, and its initialization parameters need to be slightly updated - to use 1 stop bit instead of two, and to enable CTS/RTS flow control. Also the RAM addresses need to be updated to start from 8000h. \\ +The famous Tiny BASIC 2.0 written by Li-Chen Wang and modified by Roger Rauskolb, runs on MiniMax8085 with very little modifications: The 8251 USART I/O address needs to be updated, and its initialization parameters need to be slightly updated - to use 1 stop bit instead of two, and to enable CTS/RTS flow control. Also the RAM addresses need to be updated to start from 8000h. \\ For your enjoyment the original Tiny BASIC article from the December 1976 issue of Interface Age magazine - {{:boards:sbc:minimax8085:tinybasic-2.0.pdf|TinyBASIC-2.0.pdf}}, the source files and the ROM image - {{:boards:sbc:minimax8085:tinybasic-2.0-mini85.zip|tinybasic-2.0-mini85.zip}}, are provided.
-For your enjoyment the original Tiny BASIC article from the December 1976 issue of Interface Age magazine - TinyBASIC-2.0.pdf, the source files and the ROM image - tinybasic-2.0-mini85.zip, are provided at the bottom of this page.+
  
 ====== Frequently Asked Questions and Troubleshooting ====== ====== Frequently Asked Questions and Troubleshooting ======
boards/sbc/minimax8085/start.1496251462.txt.gz · Last modified: 2017/05/31 13:24 by skiselev
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0