【Z80 Retro】Homebrew 8-bit Computer on 10cm square PCB designed with KiCad【Arduino】

Homebrew Beer Equipment
Z80 Single Board Computer “PC-84C0SA 20MHz”
Implemented by Shisuibi – Grand Master Sorcerian –

★はじめに

 ブレッドボードで作った初代&2代目Z80シングル・ボード・コンピュータが
 KiCadで設計&PCBWayさん製作の本格的なプリント基板仕様に進化しましたw

 SRAMのSとArduinoのAでPC-84C0SAと命名しました
 愛称は菜摘(なつみ)ちゃんです(紫と金の基板が菜の花に見えたから)

★仕様

        名称 PC-84C0SA 20MHz
        愛称 菜摘(なつみ)

    中央処理装置 ZiLOG Z80(CMOS版・Z84C00)
    動作クロック 固定クロック 20 [MHz](水晶発振回路)
           可変クロック 4・32・256・2K・16K・128K・1M・4M・8M [Hz](Timer4)

     主記憶装置 SRAM 512KB(32KB下位バンク×16ページ)
     入出力装置 Arduino Micro
      通信装置 USBシリアル/SH-HC-08 BLE UART(iPhone側アプリ:AirTerminal)
    補助記憶装置 microSDモジュール FAT16 2GBメディア

     設計ソフト KiCad EDA 7.0.0
    プリント基板 10cm×10cm 4層基板(1層:GND 2層:縦配線 3層:横配線 4層:+5V)
      表面処理 ハンダマスク(紫) シルクスクリーン(白)
     銅箔仕上げ ENIG(無電解ニッケル金フラッシュ)

   ブートローダー 0010Hバイト(起動時にArduinoが直接SRAMへ書き込み)
 BASIC インタプリタ 2000Hバイト(起動時にZ84CがArduinoからSRAMへ転送)

★部品リスト
 BAR1・BAR2・BAR3・BAR4|Paialu 10セグメントLED 赤2黄3緑4青1
            |https://amzn.asia/d/icFSwDX
 C1・C2        |セラミックコンデンサ(22pF)
 C3・C4・C5・C6・C7・C8|セラミックコンデンサ(100nF)
 C9          |アルミ電解コンデンサ(100uF)
 H1・H2・H3・H4    |PCBスペーサー(M2)2.2mm

 J1・J2        |ピンソケット(1×18)1×8と1×10を繋いで代用
            |Arduino Micro
            |https://www.amazon.co.jp/dp/B00AFY2S56
 J3・J4・J5・J6・J7  |ピンソケット(1×8)
 J8          |ピンソケット(1×8)
            |DSD TECH SH-HC-08 Bluetooth 4.0 BLE
            |https://www.amazon.com/dp/B01N4P7T0H
 J9          |ピンソケット(1×8)
            |KKHMF microSDモジュール
            |https://amzn.asia/d/aq0BmZB

 R1          |金属被膜抵抗器(1MΩ)
 R2・R3        |金属被膜抵抗器(1KΩ)
 R4・R5・R6・R7・R8  |金属被膜抵抗器(2KΩ)
 RN1・RN10・RN11    |集合抵抗器(2KΩ)4素子
 RN2・RN3・RN4・RN5  |集合抵抗器(5KΩ)4素子
 RN6・RN7・RN8・RN9  |集合抵抗器(330Ω)4素子
 RN12・RN13・RN15   |集合抵抗器(10KΩ)4素子
 RN14・RN16      |集合抵抗器(10KΩ)8素子

 U1          |ZiLOG Z84C0020PEG マイクロプロセッサ 20MHz
 U2          |Alliance Memory AS6C4008-55PIN SRAM 4Mビット(512K×8ビット)
 U3・U4        |Texas Instruments SN74AHCT00N 論理NANDゲート 2入力1出力×4
 U5・U6        |Texas Instruments SN74AHCT32N 論理 OR ゲート 2入力1出力×4
 U7・U8        |Texas Instruments SN74AHCT595N シフトレジスタ 8ビット
 Y1          |ABRACON ABL-20-B1U 水晶発振子(20MHz)

 ※注意【重要】
  R5・R6・R7・R8の抵抗値は分圧の関係で、RN3の半分以下の値を選択して下さい
  (U7の上位4ビット出力=Highの時、AB00~AB03=Highと判定させる為)
  RN6の抵抗値は分圧の関係で、RN1の半分以下の値を選択して下さい
  (BUSREQ=Low&BUSACK=Lowの時、MREQ=Lowと判定させる為)

★制御回路

 SRAM_WE = Z84C_WR + Z84C_MREQ
 SRAM_OE = Z84C_RD + Z84C_MREQ

 ArMi_PioReq = ~Z84C_M1 + Z84C_IORQ
 Z84C_WAIT = ArMi_PioReq + ArMi_PioWait

 入出力命令が実行されると、Arduino Micro側から
 解除されるまでCPUはWAIT状態になります

 SRAM_A15 = Z84C_A15 + Bank_P00
 SRAM_A16 = Z84C_A15 + Bank_P01
 SRAM_A17 = Z84C_A15 + Bank_P02
 SRAM_A18 = Z84C_A15 + Bank_P03

 SYS_POWER = ~(Z84C_HALT ・ ~SD_SS)

 NANDゲート2個 … BLE_TXDをArMi_RXDに接続する際の昇圧
 NANDゲート1個 … BLE_STATEをLED表示する際の昇圧とロジック反転
 (残り2個のNANDゲートは発振回路のインバータとして使用しています)

★LED表示

 データバス(DB07~DB00)
  赤赤黄黄黄緑緑緑緑青
  |||||||||+― Z84C_RD
  ||||||||+―― ビット0
  |||||||+――― ビット1
  ||||||+―――― ビット2
  |||||+――――― ビット3
  ||||+―――――― ビット4
  |||+――――――― ビット5
  ||+―――――――― ビット6
  |+――――――――― ビット7
  +―――――――――― Z84C_WR

 アドレスバス(AB07~AB00)
  赤赤黄黄黄緑緑緑緑青
  |||||||||+― Z84C_MREQ
  ||||||||+―― ビット0
  |||||||+――― ビット1
  ||||||+―――― ビット2
  |||||+――――― ビット3
  ||||+―――――― ビット4
  |||+――――――― ビット5
  ||+―――――――― ビット6
  |+――――――――― ビット7
  +―――――――――― Z84C_IORQ

 アドレスバス(AB15~AB08)
  赤赤黄黄黄緑緑緑緑青
  |||||||||+― Z84C_M1
  ||||||||+―― ビット0
  |||||||+――― ビット1
  ||||||+―――― ビット2
  |||||+――――― ビット3
  ||||+―――――― ビット4
  |||+――――――― ビット5
  ||+―――――――― ビット6
  |+――――――――― ビット7
  +―――――――――― Z84C_RFSH

 シフトレジスタ設定値(Ctrl+Dで切替)
  赤赤黄黄黄緑緑緑緑青
  |||||||||+― SYS_POWER
  ||||||||+―― ビット0
  |||||||+――― ビット1
  ||||||+―――― ビット2
  |||||+――――― ビット3
  ||||+―――――― ビット4
  |||+――――――― ビット5
  ||+―――――――― ビット6
  |+――――――――― ビット7
  +―――――――――― BLE_STATE

★キー操作

 Ctrl+A … システム再起動
 Ctrl+S … システムメッセージ表示ON/OFF
 Ctrl+D … LED表示モード切替(任意データ/SRAMページ/送信データ)
 Ctrl+F … BLE UART送受信ON/OFF

 Ctrl+Q … 可変クロック( 4 Hz)
 Ctrl+W … 可変クロック( 32 Hz)
 Ctrl+E … 可変クロック(256 Hz)
 Ctrl+R … 可変クロック( 2KHz)
 Ctrl+T … 可変クロック( 16KHz)
 Ctrl+Y … 可変クロック(128KHz)
 Ctrl+U … 可変クロック( 1MHz)
 Ctrl+I … 可変クロック( 8MHz)
 Ctrl+O … 可変クロック( 4MHz)
 Ctrl+P … 可変クロック(停止/手動)

★謝辞

 Grant Searle氏のBASIC.ASMをZASMでアセンブル出来る様に
 手直しして利用させて頂いております
  http://searle.wales/
  http://searle.x10host.com/

 ZASMは64ビットバージョンのWindows11では動作しない為、
 ZASM64に変換して利用させて頂いております
  http://takeda-toshiya.my.coocan.jp/

Articles You May Like

My NEW Brewing System! MUST SEE Tips & Tricks for the All-In-One Clawhammer BIAB System!
Simple lagering techniques for beginners
Cheapest Home Brew on the Market part 2, Woolies Toucan Mango Pash
Naughty Neighbour Pale Ale From Canada Tastes More Like An IPA #beer #paleale #craftbeer #canadian
Top 5 Best Cheap Coffee Makers in 2025 [Buying Guide]