現在地

マイコン

マイコン

マイクロプロセッサ・マイクロコントローラ等です。

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

カテゴリー:

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

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

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

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

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

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

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

カテゴリー:

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

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

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

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

N8X305 と NS32016D

テーマ:

カテゴリー:

残るは2つですが、どちらも似たものをこれまでに取り上げていますのでまとめて紹介することにします。


一つ目はSigneticsのN8X305、これはN8X300の改良版です。8935がデートコードかな? だとすると1989年製ということになりますね。

N8X300との相違点はどこなのかということで両者のデータシートを見比べているのですが、相違点が明確に書かれていません。

SigneticsのN8X305のデータシートが見つからず、セカンドソースのAMDのデータシートを参照しています。

ハードウェア的にはN8X300の上位互換らしく、そのまま挿し替えが可能なようです。

Am2901

テーマ:

カテゴリー:

前回のと一緒に調達したものがいくつかあるので何回かに分けて取り上げようと思います。


これはAm2901 4ビットスライスALU、AMDのAm2900ファミリの一員です。

以前取り上げたIDM2911もこのファミリ(セカンドソースですが)ですね。

その時も書いたようにこのファミリは一般的なプロセッサとペリフェラルといったものではなく、プロセッサを構成するための部品の集合体です。しかも決まった完成形があるわけではなく、すべてが回路設計者に任されています。命令デコーダは各自設計する必要があるのでAm2900命令セットといったものは存在しません。

MC6808

テーマ:

カテゴリー:

また新しいデバイスを買ってしまいました。


MotorolaのMC6808L、1980年9週製造と思われます。

MC6808はMC6802から内蔵SRAMを取り除いたものです。必要なRAMの少ないシステムでは外部にRAMを接続しなくて済むMC6802はありがたい存在ですが、どうせ外部にRAMを追加するなら128バイト程度のRAMなど無くても困らないでしょう。

まぁMC6802もピン36をRE(RAM Enable)をLにすれば内蔵RAMは切り離されるので、ダイは同一の可能性もあります。MC6808では常にLにしろとあるのでボンディングオプションですらなく単にRAMの動作を保証するかどうかの違いかもしれません。

RP2040ボード

テーマ:

カテゴリー:

RX220ボードと一緒にこんなボードも買っちゃいました。


RP2040(Raspberry Pi Picoのマイコン)を搭載した秋月独自のマイコンボードですね。互換機なのかな? 私としてはアセンブリでゴリゴリ書きたいと思っているので資料さえあれば互換性は気にしませんが。

そういえば意外に思われるかもしれませんが、実はRaspberry PiもArduinoもこれまで使ったことありませんでした。

マイコンボード作る時ってそれを使って何かをしたいというよりマイコン自体で遊びたいことが多いからですね。

何かをしたいときも生のAVRマイコンを使っちゃうし。

あっ、いつもアセンブリで書いちゃってるからAVRをC言語などで書いたこともない気がする。

RX220ボード

テーマ:

カテゴリー:

マクロアセンブラASのRXコードジェネレータは完成し、無事に本家にマージされました。

次は書き込み環境を用意しなくてはなりません。USB接続して純正のツールを使えばすぐにできるはずなのですが、なんか登録しないとツールのダウンロードできないみたいですし、独自にアセンブラも用意してしまったので書き込みも自力でやろうかと考えています。シリアルの方が簡単そうなので接続のための基板でも作ろうと秋月電子通商のサイト眺めていたら...


RX220のボードも見つけてしまい、訳アリ品(スイッチが逆マウント)で安かったこともあり買ってしまいました。

逆マウントといってもONの向きが逆なのと1,2が入れ替わるだけなのでわかって使えばそのまま使用可能です。

Intersil IM6100

テーマ:

カテゴリー:

HD1-6120があるのでどうしてもというわけではなかったのですがこれも買ってしまいました。


IntersilのIM6100AIPL、1984年製ですかね。

ミニコンPDP-8の命令を実行できる12ビットのプロセッサです。PDP-8の製造元であるDECのVT78に使われたことからもその互換性は折り紙付きと言えるでしょう。

RXの命令を眺めて

カテゴリー:

アセンブラを書いているとどんな命令があるのか全体が見えてきます。

アセンブリ言語で書いても同じではと思うかもしれませんが、その場合はこんな命令無いのかなと探しに行くことはあってもどんな命令があるのか見ることはあまりないように思います。少なくとも私はそうで、新しいプロセッサを初めて触るときはニーモニック一覧を眺めて使い慣れたプロセッサの命令に相当するのはどれかといった探し方をしてしまいます。

そうすると汎用的な命令はわかりますが、知らなくてもプログラムは書けるけど使えば便利(速い)命令は置き去りになります。

一方でアセンブラを書いていると全部の命令に一通り目を通すことになります。動作は知らなくても書けますが、マニュアルに一緒に載っていれば目に入りますし、今回のRXのように別になっていても気になって調べてしまいます。まぁ好奇心の少ない人が仕事として黙々とやったらだめかもしれませんが......

そんなわけでRXの命令を見ているとつくづくC言語(とその派生)を意識した命令セットだなぁと思えるものがあります。

RX621ボード

テーマ:

カテゴリー:

秋月に寄ったらルネサスRX621のボードが安かったんで深く考えずに買ってしまいました。


ハンダブリッジをリワークした訳アリ品ということで1000円でした。マイコン単体より安いです。

開発セットではないので基板1枚だけでソフトウェアなどは一切ないですが、Universal Monitorの移植をしたいだけなので問題ありません。

ページ