PLLシンセサイザ(その9)
PLLシンセサイザの続きです。
間があいてしまったので今困っていることをまとめてみます。
- 基準周波数を下げると不安定になる
100kHzではいいが一般的な10kHzにすると安定しない - 出力周波数を下げると不安定になる
1MHz付近まで下げると安定しない - ロック検出をどうするか
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が一つになったデバイスはほとんどありません。
最近のお買い物(2023/7)
連日の猛暑、近くのスーパーに行くだけでも融けてしまいそうです。こう暑いと雨が降ってこないかと期待してしまいますが、予報によると当面降らないらしい。夕立でもいいから降らないかなぁ。
MC145163
BBD
ちょっと珍しいデバイスが出てきましたので今回はそれについて書いてみたいと思います。
それがこのMN3208、8ピンですが少し変わったパッケージですね。14ピンの内側6ピンを抜いたようなものです。
これはBBD(Bucket Brigade Device)と呼ばれるオーディオ用の遅延素子です。原理は...... 大雑把にアナログ値を扱えるシフトレジスタといったところでしょうか。大量のコンデンサを並べて電荷を順に転送していくことからBucket Brigade(バケツリレー)と名付けられました。
MN3208は2048段でクロックは10~100kHzなので遅延時間は10.24~102.4msとなります。えっ、計算が合わないって?
2相クロックを用いて1つおきに空にしている(でないと転送できない)ためです。
PLLシンセサイザ(その8)
前回インバータでリングオシレータVCOを作った時の周波数可変範囲を見てみましたが、さらにいくつか追加で入手しましたのでそれらも同様に見てみました。
まずはSN74AHCU04N、これはUnbufferedタイプなので1段での動作は期待できません。
1段 | 発振せず |
3段 | 1MHz~185MHz |
5段 | 700kHz~125MHz |
さすが高速タイプなのでこれまでで最高の185MHzを達成しました。その代わりに下も1MHz程度までしか下がりません。
3SF11を動かしてみた、はず
以前3SF11を動かした記憶があるのでその時の記事を探していたら......
どうも若干の写真を撮っただけで記事など書いていませんでした。ファイルのタイムスタンプによると4年前のようです。今回はその写真と記憶をたよりに書いてみたいと思います。
これがその時に作った実験ボードです。
こういう実験ならブレッドボードの方が良さそうに思いますが、かなり足を曲げないといけません。持っている数も少ないし追加調達も難しそうなのでデバイスにあまり加工を加えたくありません。実際このボードでも足そのままソケットに挿せるようにしています。
そもそも使い方がよくわからないデバイスなのでピン毎にRを切り替えるジャンパを並べているだけで、あとはピンヘッダやソケット間を必要に応じてつなぐことにしています。なので半ばブレッドボード的な使い方になります。