古のマイコン開発法(その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コードになっています。これはマイコンなどではなくサムホイール(サムロータリ)スイッチなんかを前提としているんでしょうね。

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年前のようです。今回はその写真と記憶をたよりに書いてみたいと思います。


これがその時に作った実験ボードです。

こういう実験ならブレッドボードの方が良さそうに思いますが、かなり足を曲げないといけません。持っている数も少ないし追加調達も難しそうなのでデバイスにあまり加工を加えたくありません。実際このボードでも足そのままソケットに挿せるようにしています。

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

テーマ:

カテゴリー:

PLLとしての動作に手こずっているので、リングオシレータVCO単体の動作について先に書いて置きたいと思います。これはCMOSインバータの伝搬遅延が電源電圧によって変化することを利用したVCOです。


これは現在いじっている状態で、以下の周波数可変範囲を調べたときとは若干異なっていますが大差はないと思います。

2つのTC74HC04APのうち上がリングオシレータ、インバータを6段接続してあり1,3,5段を右側のジャンパで切り替えられるようになっています。

左上のTO-92は2SK363、ソースフォロワで上の74HC04のVccをコントロールします。

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

テーマ:

カテゴリー:

前回は74LS624によるVCOを作成しましたが、当初の計画である1MHz~25MHzには上限が足りない上にV2のコントロールが必要です。

そこで74HC4046によるVCOも作ってみました。


これも部品点数の少ないシンプルなものですね。74HC4046も前に動かしているので基本それを踏襲していますが、R1を切り替え式から挿し替え式に変更しました。さらにR2も必要に応じて挿せるようにソケットを用意しました。

とりあえずR1=47kΩ, R2=∞(Open)としています。

これで前回同様に周波数の可変範囲を調べてみると、0.94MHz~23MHzとわずかに広くなったうえにV2のような別途コントロールしなくてはならないものもありません。

最近のお買い物(2023/6)

テーマ:

カテゴリー:

先日普段使いの眼鏡が壊れてしまい、5日ほど工作用眼鏡を使っていたのですが度を下げてあるので遠くが見づらくて......

今朝入荷の連絡が入ったので受け取って来ました。調べてもらったら前のは7年も使っていたみたい。新しいのはちょっと度も強めたし、レンズもきれいなので気持ち悪いくらいよく見える。壊れたのも修理可能らしいので予備用に直してもらっています。

というわけで6月のお買い物です。

ATmega164でWDTが勝手に動作した件

カテゴリー:

PLLシンセサイザ(その5)のところで「ちょっとトラブルがあった」と書きましたが、今回はそれについて書いてみようと思います。

VCOが出来たのでD/Aコンバータから電圧を与えてV-F特性を見ようと電源を入れたのですが......

何故かマイコンがリセットを繰り返してしまいD/Aを操作できません。最後にD/Aコンバータを確認したときには動作していましたし、それからソフトウェアは変更していません。ハードウェア的には電源とD/Aの出力をくらいでマイコンの動作に影響を与えるとは考えにくいのです。電源が揺れれば考えられなくはありませんが、オシロで見ても問題なさそうですしVCO基板を外しても解決していません。

以前試したときは(初期化を忘れていたのに)偶然動いていただけかもしれません。未使用割り込みベクタをreti命令を指すようにしたり、I/Oポートの初期化を見直したりしましたが効果ありません。

ページ