【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

Will not be empty handed this holiday szn 🍹 #kombucha #holiday #mocktail #recipe