Skip to content

Instantly share code, notes, and snippets.

@GOROman
Last active May 8, 2025 02:00
Show Gist options
  • Save GOROman/665e3c24fd45fe452bd89ec50ae35716 to your computer and use it in GitHub Desktop.
Save GOROman/665e3c24fd45fe452bd89ec50ae35716 to your computer and use it in GitHub Desktop.
Z80 CPU (AKI-80) と M5Stack Core2 (ESP32) を接続し、ESP32でROM等をエミュレートする際の主要な信号接続の概念図

AKI-80 と M5Stack Core2 配線図 (概念図)

Z80 CPU (AKI-80) と M5Stack Core2 (ESP32) を接続し、ESP32でROM等をエミュレートする際の主要な信号接続の概念図です。

graph TD
    subgraph "M5Stack Core2 (ESP32)"
        direction LR
        ESP32_CLK["CLK_OUT (GPIO)"]
        ESP32_RESET["N_RESET_OUT (GPIO)"]
        ESP32_ADDR["Address Bus In (A0-A15)"]
        ESP32_DATA["Data Bus IO (D0-D7)"]
        ESP32_MREQ["N_MREQ_IN"]
        ESP32_IORQ["N_IORQ_IN"]
        ESP32_RD["N_RD_IN"]
        ESP32_WR["N_WR_IN"]
        ESP32_WAIT["N_WAIT_OUT"]
        ESP32_INT["N_INT_OUT (Optional)"]
        ESP32_NMI["N_NMI_OUT (Optional)"]
        ESP32_BUSRQ["N_BUSRQ_OUT (Optional)"]
        ESP32_BUSAK["N_BUSAK_IN (Optional)"]
    end

    subgraph "AKI-80 (Z80 CPU)"
        direction LR
        Z80_CLK["CLK"]
        Z80_NRESET["nRESET"]
        Z80_ADDR["Address Bus Out (A0-A15)"]
        Z80_DATA["Data Bus IO (D0-D7)"]
        Z80_MREQ["nMREQ"]
        Z80_IORQ["nIORQ"]
        Z80_RD["nRD"]
        Z80_WR["nWR"]
        Z80_WAIT["nWAIT"]
        Z80_INT["nINT (Optional)"]
        Z80_NMI["nNMI (Optional)"]
        Z80_BUSRQ["nBUSRQ (Optional)"]
        Z80_BUSAK["nBUSAK (Optional)"]
    end

    ESP32_CLK --> Z80_CLK
    ESP32_RESET --> Z80_NRESET
    Z80_ADDR --> ESP32_ADDR
    ESP32_DATA <--> Z80_DATA
    Z80_MREQ --> ESP32_MREQ
    Z80_IORQ --> ESP32_IORQ
    Z80_RD --> ESP32_RD
    Z80_WR --> ESP32_WR
    ESP32_WAIT --> Z80_WAIT
    ESP32_INT --> Z80_INT
    ESP32_NMI --> Z80_NMI
    ESP32_BUSRQ --> Z80_BUSRQ
    Z80_BUSAK --> ESP32_BUSAK
Loading

注意:

  • この図は概念的なものであり、ESP32の具体的なGPIOピン番号は省略しています。実際のピン割り当ては esp32_z80_emulator.cpp の定義を参照してください。
  • 重要: この図ではロジックレベルシフタを省略して描画していますが、Z80 (5Vロジック) と ESP32 (3.3Vロジック) を実際に接続する際は、信号の電圧レベルを変換するためにロジックレベルシフタが必須です。適切なレベルシフタを使用しない場合、デバイスが損傷する可能性があります。
  • "Optional" と記載のある信号線 (INT, NMI, BUSRQ, BUSAK) は、本プロジェクトの基本的な構成 (ROMエミュレーションと単純なI/O) では使用しない可能性がありますが、拡張性を考慮して記載しています。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment