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/