Skip to the content
2 layers100 × 70 mmZK80, the printed circuit board in 3D

Katsumiさんが公開してくださっているNEC TK-80互換機 ZK-80miniにSDカードによるLOAD、SAVEとスピーカーを追加します。

Size
100 × 70 mm
Copper layers
2
Thickness
1.6 mm
Parts
30
Nets
31
Pads
135
Tracks, vias
416, 26
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
3 May 2022
Updated
10 May 2022

Overview

ZK80 is an open-source printed circuit board by yanataka60, from the yanataka60/ZK80mini_SD repository on GitHub, published under the GPL-2.0 licence. It is a 2-layer board of 100 × 70 mm with 30 parts on 31 nets, routed with 416 tracks and 26 vias.

It is built around the PIC32MX150F128B-I/ML. Its parts include 9 resistors, 6 capacitors, 4 ICs, 4 connectors and 2 switches. It belongs with the PIC boards of this library.

Main components

1

README

README.md

ZK80mini_SD

 Katsumiさんが公開してくださっている素晴らしいNEC TK-80互換機 ZK-80miniにSDカードによるLOAD、SAVEとスピーカーを載せてみました。

  KZ-80mini

    http://www.recfor.net/blog/mycom/index.php?itemid=883

 SDカードのアクセスには、ケンケンさんが公開してくださっているSDカードアクセスライブラリを用いています。

  SDカードアクセスライブラリ

    http://www.ze.em-net.ne.jp/~kenken/bootloader/index.html

ZK80mini_sd_1

回路図

回路図

部品表

番号品名数量備考
U14桁7セグメントLED アノードコモン アノード共通接続1秋月電子通商 OSL40562-IRA
U24桁7セグメントLED カソードコモン カソード共通接続1秋月電子通商 OSL40562-LRA
U3PIC32MX150F128B1マルツオンライン等
U4低消費電力LDO 7333-A1オレンジピコショップ 秋月電子通商 S-812C33AY-B-Gでも可
J16Pinコネクタ1
J2Micro SD Card Kit1秋月電子通商 AE-MICRO-SD-DIP
J3マイクロUSBコネクタ 電源供給用1秋月電子通商 MRUSB-2B-D14NI-S306
J414P(2×7P) コネクタ1ケーブルで繋ぐならボックスヘッダー、直差しするならピンソケット
S1 S23Pスライドスイッチ2
R1カーボン抵抗 1/6W 330Ω1
R2 R3 R4 R5カーボン抵抗 1/6W 100Ω4
R6 R7 R8 R9カーボン抵抗 1/6W 10kΩ4
C1電解コンデンサ 16v10μF1
C2 C3 C4積層セラミックコンデンサ 0.1μF3
C5 C6積層セラミックコンデンサ 10μF2
LS1圧電スピーカー(圧電サウンダ)(13mm)1秋月電子通商 PKM13EPYH4000-A0
キーボード1オレンジピコショップ ZK-80-KB 組立てキット

その他必要なもの

品名
Microchip社のPICマイコン書き込み機 PICKit3等

PIC書き込み環境

名称
MPLAB X IDE
MPLAB XC32compiler V1.21

PICへの書き込み

 MPLABフォルダに2通りのコンパイル済みバイナリを用意しています。

  zk80mini_8080.hex(CPU 8080)

  zk80mini_z80.hex(CPU Z80)

 このバイナリを使うのであればMPLAB X IDE付属のMPLAB X IPEにより書き込んでください。

 コンパイルしたい方はMPLAB/zk80mini_SDフォルダのプロジェクトをMPLAB X IDEでコンパイルして書き込んでください。

バイナリに含まれるTK-80互換モニタープログラムについて

 ZK80miniオリジナルに含まれるTK-80互換モニタープログラムをそのまま使用しています。

 詳しくはオリジナルのreadme.txtを参照してください。

使い方

 使い方の基本はTK-80と同様です。

 ROM $0000-$02FF(768Byte)

 RAM $8000-$F1FF(28KByte)

 SDカードのファイルシステムは、FAT32対応ですが、8.3形式のファイル名のみ使用可です。

 本システムでのファイルネームは16進数4桁のファイルNoに3文字の拡張子です。

 スピーカーは、TK-80 8255 PC1に接続をエミュレートしています。

  注)互換モニターでSDカードからのロード直後にRUNキーで実行すると音が出ない場合があるようです。その時には一回RESETを押し、ADRS SETをし直してRUNしてください。

   なお、rom.hをTK-80正規モニターに差し替えてコンパイルすれば音の出ない不具合は解消されます。

 また、ICSPに繋ぐピンをLED、キーボードと兼用していますのでPICKit3をICSPに接続したままキーボード操作をすると誤動作します。(2、7、LOAD DATAのキーが効きません。書き込みは正常に行えます。)

TK-80正規モニターに差し替える場合は、TK-80正規モニターに以下の修正を加えて差し替えてください。

00D5: AF      XOR A

00D6: D3 9E     OUT (9Eh),A

00D8: CD A1 01   CALL 01A1h

00DB: C3 51 00   JP 0051h

 

0107: 3E 01     LD A,01h

0109: D3 9E     OUT (9Eh),A

010B: CD A1 01   CALL 01A1h

010E: C3 51 00   JP 0051h

SAVE

 ファイルNo(xxxx)を8000~FFFFの16進数4桁で入力して「STORE DATA」キーを押します。

 メモリ 8000h~F1FFhまでをxxxx.ZK8としてセーブします。セーブ範囲は固定となっていて指定はできません。

 SDカードには、ファイルNo(xxxx).ZK8という名前で保存されます。

 SDカードに同じファイルNoのZK8ファイルがあった場合には上書きされます。

 ファイルNo、0000~7FFFまでは上書きによる消失を防ぐため読み出し専用のファイルNoになっています。

 ファイルNo、8000~FFFFは読み書き自由です。

 ZK8形式は、ヘッダ情報等が付加されていないファイル長28,672Byteのベタなバイナリファイルです。

LOAD

 ファイルNo(xxxx)を0000~FFFFの16進数4桁で入力して「LOAD DATA」キーを押します。

 正常にLOADされた場合は、LED ADDRESS表示部にLOAD開始アドレス、LED DATA表示部にLOAD終了アドレスが表示されます。

 LOADするファイルの拡張子はZK8、TK8、BIN、BTK、HEXに対応しており、違う拡張子で同じファイルNoのファイルがSDカードに保存されていた場合には次の順に検索されます。

   検索順:ZK8 -> TK8 -> BIN -> BTK -> HEX

ZK8、TK8、BIN

 すべて、ヘッダ情報等が付加されていないベタなバイナリファイル。

 SDカードから読み込まれたファイルはメモリの8000hからファイル長分LOADされます。

 ただし、メモリへの書き込みアドレスが83B0h~83D0h、83E0h~83FFh、F200h~FFFFHまでの範囲の読み出しデータはメモリに書き込まれません。

BTK

 バイナリファイル本体データの先頭に2Byteの開始アドレス、2Byteの終了アドレス合計4Byteを付加した形になっているファイル。

 SDカードから読み込まれたファイルは開始アドレスから終了アドレスまでLOADされます。

 ただし、メモリへの書き込みアドレスが83B0h~83D0h、83E0h~83FFh、F200h~FFFFHまでの範囲の読み出しデータはメモリに書き込まれません。

HEX

 インテルHEX形式のファイル。

 SDカードから読み込まれたファイルはインテルHEX形式に基づいてLOADされます。

 ただし、メモリへの書き込みアドレスが83B0h~83D0h、83E0h~83FFh、F200h~FFFFHまでの範囲の読み出しデータはメモリに書き込まれません。

注意

 SDカードにアクセスしていなければ電源ON時でもSDカードの抜き差しは可能ですが、再挿入後にはZK80miniをリセットしてください。

免責事項

 このツールを参考にして行った事による、いかなる不具合に関しても、私は責任を持ちません。各自、自己責任のもとで作業を行ってください。

著作権について

 KUT KiCad Connector footprint libraryは、The MIT License (MIT)。

 SDカードライブラリのlibsdfsio.a、SDFSIO.hについては、ケンケンさんが公開しているMicrochip社のライブラリを利用。(SDFSIO.hにライセンスの記載在り)

 それ以外は、ZK-80miniのライセンスと同様にすべてLGPL v2.0の元配布します。

謝辞

 ZK80miniを公開してくださったKatsumi様

 SDカードアクセスライブラリを公開してくださったケンケン様

 ありがとうございました。

追記

2022.5.5

text
     LOAD除外範囲を修正、著作権表記を修正。

     部品表 J2 Micro SD Card Kitの品番を修正。

     コメントを追加したところ、コンパイル後、動作が不安定になることがあるためコメント一部削除

2022.5.6

text
     コメント再追加

     SDカードからLOAD直後にスピーカーから音が出ない場合への対処を付記。

2022.5.11

text
     TK-80正規モニターに差し替える場合の修正点を追記。

Parts

30
QtyValueFootprintReferences
4100Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2, R3, R4, R5
410kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR6, R7, R8, R9
4MountingHole_3.2mm_M3MountingHole:MountingHole_3.2mm_M3MH1, MH2, MH3, MH4
30.1uFCapacitor_THT:C_Rect_L4.0mm_W2.5mm_P2.50mmC2, C3, C4
210uFCapacitor_THT:C_Rect_L4.0mm_W2.5mm_P2.50mmC5, C6
110uFCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC1
1330Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1
17333-APackage_TO_SOT_THT:TO-92_Inline_WideU4
1AE-MICRO-SD-DIPKUT_Connector:AE-MICRO-SD-DIPJ2
1ICSPConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_HorizontalJ1
1KeyBoardConnector_PinHeader_2.54mm:PinHeader_2x07_P2.54mm_VerticalJ4
1MRUSB-2B-D14NI-S306vsrAkizuki:MRUSB-2B-D14NI-S306J3
1OFF ONConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalS2
1OSL40562-IRADisplay_7Segment:CA56-12EWAU1
1OSL40562-LRADisplay_7Segment:CA56-12EWAU2
1PIC32MX150F128BPackage_DIP:DIP-28_W7.62mm_LongPadsU3
1STEP AUTOConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalS1
1SpeakerPackage_TO_SOT_THT:TO-5-2LS1

Similar boards

  • 2 layers52.2 × 52.2 mmBase promicro, the printed circuit board in 3D

    Base promicro

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    30 parts3kApache-2.0
  • 2 layers40.6 × 15.2 mmVr mmm, the printed circuit board in 3D

    Vr mmm

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    30 parts1.2k
  • 2 layers270 × 11 mmDaylight, the printed circuit board in 3D

    Daylight

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    30 parts1.1kGPL-3.0
  • 2 layers65 × 30 mmRgb to hdmi, the printed circuit board in 3D

    Rgb to hdmi

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    30 parts1kGPL-3.0
  • 2 layers40.5 × 58 mmInitial v, the printed circuit board in 3D

    Initial v

    tenderlove/initial-v

    It's a BMW shifter converted to a Bluetooth Keyboard that you use with Vim

    30 parts1kApache-2.0
  • 2 layers34.3 × 41.8 mmMotionCubeViewAllForces, the printed circuit board in 3D

    MotionCubeViewAllForces

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    30 parts915
  • 2 layers57.4 × 62 mmPicoWS2812, the printed circuit board in 3D

    PicoWS2812

    ErichStyger/mcuoneclipse

    McuOnEclipse projects and examples

    30 parts765
  • 2 layers52.1 × 46.8 mmFIRE TEST PANEL, the printed circuit board in 3D

    FIRE TEST PANEL

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    30 parts431

Questions

How big is the ZK80 PCB?

It measures 100 × 70 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ZK80 use?

30 parts, built around the PIC32MX150F128B-I/ML. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the ZK80 KiCad files?

From the yanataka60/ZK80mini_SD repository on GitHub, at the commit this page was made from: the board is KiCad/ZK80.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the ZK80 design in my own project?

Its repository publishes it under the GPL-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).