Yamamoto's Laboratory
Z80
LED点滅

8ビット CPU Z80LED点滅

Z80 CPU を使い LED を点滅させる回路を示します.ここでは,Z80 は CPU として動作しますが,メモリーは使用しません.お手軽な回路で LED が点滅するので,見て楽しいです.

目次


はじめに

YouTube には沢山の Z80 に関する動画が投稿されています.英語が多いですが,字幕をONにすると英語の勉強になります.そのような理由でたまに眺めています.その中で面白い動画「Flashing LEDs - Z80 Style」を見つけました.以下に示します.

動画1: YouTube にアップされていた Z80 の動作の様子

極めて単純な回路で Z80 が動作しています.特に注目すべき点は「メモリーが接続されていない」ことです.さらに,クロックスピードが極めて遅いため,Z80 の動作がよく分かります.

メモリーが不要となると,俄然,製作意欲が湧きます.メモリーに関する作業が無いので,製作がとても簡単になるからです.いそいそと,部品を購入するために秋葉原に行きました.

LED 点滅の回路

動画1を参考に,メモリー無しでZ80 を動作させる回路をブレッドボード上に作製しました.懇切では,作製した回路について説明します.

回路

ここで製作する Z80 の基本動作を示す回路を,図1に示します.LED が点灯/消灯が Z80 の各ピンの H/L の状態に対応します.

左側にあるタイマーICで「555」を中心とした回路がクロックジェネレーターです(詳細は後述の「クロックジェネレーター」).「555」と呼ばれる数 [Hz] のクロック信号を生成します.Z80 は 2[MHz] で動作可能ですが,そんな速度で動作させると目が追いつかないですよね.

Z80 の reset 端子にはリセット回路が接続されています(詳細は後述の「リセット回路」).抵抗 (26 [kΩ]) とコンデンサー (3.3μF) の時定数は,85.8 [msec] です.ちょっと時定数が短いので,抵抗やコンデンサの容量をもう少し大きくした方が良いかもしれません.動画1の回路にはリセット回路が無いため,大抵の場合,動作しないでしょう.

面倒な付属回路(クロックジェネレーター,リセット回路)は,以上で終わりです.回路の残りの部分は,Z80 の回路です.電源を除いて,デジタル回路 (L:0[V], H:5[V]) なのでとても解りやすいです.

図1: Z80 の仕組みを示す LED の点滅回路

部品の一覧

Z80 を使った LED 点滅回路の部品表
部品 型番/仕様 個数
8ビット CPU Z80 1
タイマーIC LM555 1
半固定抵抗 100 [kΩ] 1
セラミックコンデンサー 2-3 [μF] 1
抵抗 1 [kΩ] 多数
抵抗 380 [Ω] 多数
LED 多数

回路の動作

回路の詳細

クロックジェネレーター

CPUを動かすためには,外部クロック信号が必要です.回路では,「555」と呼ばれるタイマーICで数 [Hz] のクロック信号を作っています.非安定マルチバイブレータ (astable multivibrator) と言われる回路で,図に基本構成を示します.図中の抵抗(R1, R2)とコンデンサー(C)で,出力のクロック周波数とデューティサイクルが決まります. \begin{align} Frequency &= \frac{1.44}{(R_1+2R_2)C}\\ Duty Cycle & = \frac{R_1+R2}{R_1+2R_2} \end{align} このタイマー IC の出力は 3 番ピンで,それが Z80 のクロック入力 CLKに接続されています.

図2: 555 非安定マルチバイブレータ (astable multivibrator)

リセット回路

回路の電源を ON にした瞬間は,電圧が立ち上がっていないのでシステムは不安定です.電源を投入してからしばらくして,回路の電圧が安定した後に,CPUの動作を開始しなくてはなりません.そのために,Z80 の reset 端子を機器が安定になるまで,Lowにします.その後,High にします.こうすることにより,CPU を安定に起動させることができます.ここでは,最も簡単なCR回路でそれを実現してます.図の回路のVoutの電圧は次式で与えられます. \begin{align} V_{out}=(1-e^{-t/CR})V_0 \end{align} ここで,tは時刻で,スイッチを ON にした瞬間が基準です.概ねCR [sec] 後に,VoutがHになります.

図3: リセット

ページ作成情報

参考資料

  1. タイマーIC「555」を使った非安定マルチバイブレータについては,「555 Astable Multivibrator frequency,duty cycle calculator」を参考にしました.

更新履歴

2017年10月27日 新規作成


no counter