超小型Z80マイコン(その9)回路図とパターン設計 [Z80]
20 ピンの USB 対応の PIC(PIC18F14K50)を使った 3 チップ構成の小型 Z80 基板を引き続き検討中です。
前回の記事の最後に追記したように HexLoader で CP/M の IPL を実行することで CP/M が動作するようになりました。その後、ソフトウェアによるタイミング調整により CP/M が安定して動くようになりました。
使いまわしているブレッドボードとジャンパーワイヤを使用しているためか、まだ不安定になる時もありますがプリント基板にすることで安定化するのではないかと思います(安定している時は割合長い間安定しているので原因はソフトウェアでは無いと思う)。ブレッドボード用の接点復活剤のようなものがあればいいのにねw
今回は小型化のためにピン数の少ない PIC を使用したので I/O 数が圧倒的に不足し、殆どの I/O で制御を兼用しており、予期せぬ問題が発生し、色々楽しめました。
RB7 に至っては WAIT/ 信号の出力、IORQ/ 信号の読み取り及び TF(SD or MMC、以降 TF と記す)カードのセレクト信号出力の3つの機能を兼用しています。
TF カードのセレクト時は TF カード用のクロックの不要な立上りエッジを発生してはいけないのですが、クロック発生用の制御信号は Z80 のアドレス(A0)読込みと兼用しており、Z80 が WAIT 中(= TF カードセレクト中)はクロックの立下りだけを発生することで TF カードのアクセスに影響しないようにできたので、今回の制御信号は絶妙な割り振りだったのではないでしょうか?
今回の開発では初回の記事である「超小型Z80マイコン(その1)USBシリアル対応とピンアサイン」で書いたピンアサインの検討時に考えたシナリオ通りに進められましたが、最大の不安要素は上記のクロックでした。動作しない場合は水晶発振子を active 発振のものに変更して PIC の CLKOUT(3ピン)を TF カードのセレクト信号専用にアサインすることも考えていました。
下図が PIC(PIC18F14K50)の現時点でのメモリ使用量です。
PIC 側で TF カードのアクセス用に 512 Bytes のバッファを確保したかったのですが、グローバル変数を追加しなくても関数の数が増えるだけでデータメモリの消費量が増加してしまうのでバッファサイズは 128 Bytes のままにしています。このため CP/M の BIOS で Blocking/Deblocking の処理の実装ができず、TF カードのアクセスが若干遅く感じます(昔の FD に比べれば十分に速いですが)。
動作試験として HITECH C で ASCIIART をコンパイルして動作させましたが問題無く実行できました。Twitterに動画付きコメントをアップしていますので興味があれば見てください。
漸く安定して動作するようになったので回路図を貼っておきます。
の 3 チップ構成です。
下図がトップ面とボトム面を合わせたパターン図です。黄緑色の部分はグランドになります。 基板のサイズを Z80 の 40 ピンの DIP に合わせたため、トラックは少々込み合っています。
グランドベタ化後のトップ面のパターンが下図になります。左端に USB コネクタ(Mini-B)を配置しました。中央左の IC3 はメモリです。
下図はボトム面のパターンです。中央に PIC を配置し、右端に TF カードコネクタを設けました。
プリント基板設計 CAD の DesignSparkPCB で表示した3D画面も貼っておきます。40 Pin の DIP パッケージが Z80 で左端は USB コネクタですがピンヘッダのように描画されてしまっています。
USB 対応の PIC を使用しているので USB ケーブルを接続するだけで CP/M が立ち上り、パソコン側との通信も爆速です。「Pic24MC68Kマイコン(その7)CP/M-68Kの移植」の記事で 64 Pin の MC68HC000 のチップサイズで USB ケーブル接続のみで CP/M-68K が起動する Pic24MC68K の開発について書きましたが、今回やりたかったのはまさにこれの Z80 版なのです。
下図は Z80 を除いた3D表示です。
下図がボトム面の3D表示です。中央左の小さな黒い四角のチップは表面実装タイプの水晶発振子です。右端の朱色の細長い直方体は PIC 書込み用のピンヘッダ(穴のみで実装はしない)で、その左側の朱色の四角は 3.3V のレギュレータです。
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]
前回の記事の最後に追記したように HexLoader で CP/M の IPL を実行することで CP/M が動作するようになりました。その後、ソフトウェアによるタイミング調整により CP/M が安定して動くようになりました。
使いまわしているブレッドボードとジャンパーワイヤを使用しているためか、まだ不安定になる時もありますがプリント基板にすることで安定化するのではないかと思います(安定している時は割合長い間安定しているので原因はソフトウェアでは無いと思う)。ブレッドボード用の接点復活剤のようなものがあればいいのにねw
今回は小型化のためにピン数の少ない PIC を使用したので I/O 数が圧倒的に不足し、殆どの I/O で制御を兼用しており、予期せぬ問題が発生し、色々楽しめました。
RB7 に至っては WAIT/ 信号の出力、IORQ/ 信号の読み取り及び TF(SD or MMC、以降 TF と記す)カードのセレクト信号出力の3つの機能を兼用しています。
TF カードのセレクト時は TF カード用のクロックの不要な立上りエッジを発生してはいけないのですが、クロック発生用の制御信号は Z80 のアドレス(A0)読込みと兼用しており、Z80 が WAIT 中(= TF カードセレクト中)はクロックの立下りだけを発生することで TF カードのアクセスに影響しないようにできたので、今回の制御信号は絶妙な割り振りだったのではないでしょうか?
今回の開発では初回の記事である「超小型Z80マイコン(その1)USBシリアル対応とピンアサイン」で書いたピンアサインの検討時に考えたシナリオ通りに進められましたが、最大の不安要素は上記のクロックでした。動作しない場合は水晶発振子を active 発振のものに変更して PIC の CLKOUT(3ピン)を TF カードのセレクト信号専用にアサインすることも考えていました。
下図が PIC(PIC18F14K50)の現時点でのメモリ使用量です。
PIC のメモリ使用量 |
---|
PIC 側で TF カードのアクセス用に 512 Bytes のバッファを確保したかったのですが、グローバル変数を追加しなくても関数の数が増えるだけでデータメモリの消費量が増加してしまうのでバッファサイズは 128 Bytes のままにしています。このため CP/M の BIOS で Blocking/Deblocking の処理の実装ができず、TF カードのアクセスが若干遅く感じます(昔の FD に比べれば十分に速いですが)。
動作試験として HITECH C で ASCIIART をコンパイルして動作させましたが問題無く実行できました。Twitterに動画付きコメントをアップしていますので興味があれば見てください。
漸く安定して動作するようになったので回路図を貼っておきます。
- Z80(Z84C0010PEC) 12MHz 40 Pin(Z84C020PECを実装)
- PIC(PIC18F14K50) 48MHz 20 Pin
- Memory 128KB(CY62128) 32 Pin
の 3 チップ構成です。
Z80PicCompact 回路図 |
|
下図がトップ面とボトム面を合わせたパターン図です。黄緑色の部分はグランドになります。 基板のサイズを Z80 の 40 ピンの DIP に合わせたため、トラックは少々込み合っています。
Z80PicCompact パターン図(グランドベタ化前のトップ面とボトム面) |
|
グランドベタ化後のトップ面のパターンが下図になります。左端に USB コネクタ(Mini-B)を配置しました。中央左の IC3 はメモリです。
Z80PicCompact パターン図(トップ面) |
|
下図はボトム面のパターンです。中央に PIC を配置し、右端に TF カードコネクタを設けました。
Z80PicCompact パターン図(ボトム面) |
|
プリント基板設計 CAD の DesignSparkPCB で表示した3D画面も貼っておきます。40 Pin の DIP パッケージが Z80 で左端は USB コネクタですがピンヘッダのように描画されてしまっています。
USB 対応の PIC を使用しているので USB ケーブルを接続するだけで CP/M が立ち上り、パソコン側との通信も爆速です。「Pic24MC68Kマイコン(その7)CP/M-68Kの移植」の記事で 64 Pin の MC68HC000 のチップサイズで USB ケーブル接続のみで CP/M-68K が起動する Pic24MC68K の開発について書きましたが、今回やりたかったのはまさにこれの Z80 版なのです。
Z80PicCompact 3D表示(トップ面) |
|
下図は Z80 を除いた3D表示です。
Z80PicCompact 3D表示(トップ面 Z80 除外) |
|
下図がボトム面の3D表示です。中央左の小さな黒い四角のチップは表面実装タイプの水晶発振子です。右端の朱色の細長い直方体は PIC 書込み用のピンヘッダ(穴のみで実装はしない)で、その左側の朱色の四角は 3.3V のレギュレータです。
Z80PicCompact 3D表示(ボトム面) |
|
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]
コメント 0