高速Z80

テーマ:

カテゴリー:

Z80 CPUは以前にも取り上げました(1回目2回目)が、またまた買ってしまいました。


最高クロック20MHz版です。

今さら大昔のCPUを動かすのに速度を追求してもしょうがないと思ってクロック上限には拘っていませんでしたが、PLLが動き始めているのでオーバークロックで遊んでみても面白いかもと考えが変わってきました。

さらにDIP版の入手が難しくなってきたような話も聞いていたので、買えるうちに確保しておこうと思ったのでした。

はじめ安さに惹かれてeBayで買ったのはちょっと怪しかったのですが、追加で買ったこれはDigiKeyからなので真正品と考えられます。

PLLシンセサイザ(その10)

テーマ:

カテゴリー:

もう「その10」と2桁に達してしまいましたが、当面は何か進捗があるたびに書いていこうと思います。

今回は何が進捗したかというと、出力周波数を下げていくとロックしたりしなかったり不安定になる問題です。

1MHzというのはVCOを単独で動かして求めた可変範囲をもとに出せるはずと思っていたわけですが、ループフィルタの出力の範囲が狭い、あるいはその付近でVCOのF-V特性が急峻になっていて周波数が安定しない、という可能性もあります。

前回リングオシレータの電源云々と書いたのは後者の対策だったのですが、ちょっと実験するだけならもっと簡単な方法がありました。

それはリングオシレータを1段から5段に変更してみることです。これで同じ入力電圧に対する周波数は約1/5(容量などの影響でもうちょっと下がるはず)になります。

試してみると設定下限の300kHzまで安定に動作します。代わりに上限も下がって14MHz程度までしか出せなくなりました。

古のマイコン開発法(補足)

カテゴリー:

その1その3までの「古のマイコン開発法」に少し補足しておきます。

これ「無いものは(道具も含めて)作る」のですけど、道具の無い状態では作るのは大変なので「とりあえず必要最小限」を作ってそれを道具にして自分自身を改善していきます。最終的には不要なものでも途中で必要なものは作るしかありません。

持っているものがあれば楽になります。

PLLシンセサイザ(その9)

テーマ:

カテゴリー:

PLLシンセサイザの続きです。

間があいてしまったので今困っていることをまとめてみます。

  1. 基準周波数を下げると不安定になる
    100kHzではいいが一般的な10kHzにすると安定しない
  2. 出力周波数を下げると不安定になる
    1MHz付近まで下げると安定しない
  3. ロック検出をどうするか

1.と2.はループフィルタ問題だと思われるので本を読み漁っているのですが......

学生時代は制御研究室にいたこともあってフィードバック制御は馴染みではあるのですが、PLL回路には位相比較器とかVCOなどの見慣れないものが含まれています。本を頼りに求めてみたのですがどうも桁が違っているようで、何かを勘違いしているのかもしれません。

じっくり本は読み直すことにして、勝手のわかるフィルタ部分だけ先に求めてみます。

実験に使っているのは以下のラグ・リード・フィルタです。

古のマイコン開発法(その3)

カテゴリー:

その2で市販トレーニングキットと同じように使えるようになりました。

しかしまだハンドアセンブルしたバイナリを入力して実行することしかできません。何らかの高級言語を使いたいところです。そうなると16進キーパッドや7セグメントLED表示器では不足です。

というわけで......

キーボード
16進キーパッドと異なりスイッチを並べて自作するのは難しいですが、当時でもキーボードは入手できたようです。

もちろんUSBのような共通のインターフェイスがあったわけではありません。単にキースイッチが並んでいるだけで自分でマトリクスを配線しなくてはならないもの、マトリクスの配線までされているもの、エンコーダまでついているものなどがあったようです。マトリクスタイプならキーパッドの数が増えただけのようなものなのでソフトウェアの変更は容易でしょう。

ディスプレイ
表示装置そのものの製作は困難なので既製品を利用します。最も安価なのはテレビで代用する方法で、ビデオ入力が無い場合はRFモジュレータを用意してアンテナ端子から入力します。

古のマイコン開発法(その2)

カテゴリー:

その1でプログラムを実行できるようになりましたが、スイッチを操作して書き込むのは非常に手間がかかります。また電源を切れば消えてしまい、再度入力しなくてはなりません。

バッテリバックアップ
SRAMを電池でバックアップ(あるいは電源を入れっぱなしに)すれば毎回入力しなくて済むようになります。

プログラムを暴走させて壊してしまうリスクはありますが、RAMを2つ搭載して片方の書き込み信号をスイッチで切れるようにして保護する方法もあります。

キーパッド
16進キーパッドと7セグメントLED表示器を搭載すれば入力が楽になります。

これを制御するためのプログラムはスイッチ操作で入力する必要があります。必要最小限のプログラムをスイッチ操作で入力し、キーパッドが使えるようになったらそれを利用して機能を拡張していくことで効率よく入力できます。

カセットインターフェイス
カセットインターフェイスを製作すれば入力したプログラムを保存しておくことができます。

古のマイコン開発法(その1)

カテゴリー:

ちょっとTwitter(もう「X」と書かなきゃいけないのか)で話が出たので大昔のマイコン開発について書いてみることにします。

マイコン開発といってもツールに恵まれていたであろう業務でやっていたような人ではなくアマチュアの話です。

今マイコンボードを開発するというと、フラッシュメモリを内蔵したマイコンとPCを接続(接続ケーブルなどは簡単に作れるか個人でも買える程度の価格)して簡単に書き込めますし、書き込むソフトウェアの作成もコンパイラなどのツールも無償で使えるものも多く存在します。マイコンの機能はほぼチップの中で完結しているので基板もI/Oの引き出しがメインになります。

一方で1970年代から80年代の頭にかけてアマチュアがマイコンボードを作るといった場合、パソコンを持っていないからいっちょ作ってみるかというパターンが結構あったのです。

当時の本や記事を読むとこの状況を前提として書かれているものがあります。それらを元に当時の人がどうやって何もないところから作り上げていったか書いてみようと思います。

まず当時はCPU, ROM, RAM, I/Oが一つになったデバイスはほとんどありません。

MC145163

テーマ:

カテゴリー:

えー、今回も最近入手したデバイスになります。


MotorolaのMC145163Pです。キズが多いことからわかると思いますが中古品です。

これはMC145106MC145157などと同じPLL用のICです。2つの分周器と位相比較器を持っていることも一緒です。

基準クロック用の分周器は1/512, 1/1024, 1/2048, 1/4096の切り替え式になっています。

メインの分周器は1/3~1/9999です。1/9999からわかる通り入力はBCDコードになっています。これはマイコンなどではなくサムホイール(サムロータリ)スイッチなんかを前提としているんでしょうね。

ページ