現在地

マイコン

マイコン

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

CPU判別法(68編)

現在のCPUではその種類や対応する命令の範囲などを取得する命令(例えばx86系のCPUID命令)がありますが、以前は微妙な挙動の違いなどから判別していました。

自作のUniversal Monitorのソースコードを例に解説してみます。

MC6800系

まずは昨日目処が立ったと書いたMC6800系からです。

この系統はあまり情報が無く(旬な時期にあまりかかわらなかったのも理由です)手持ちのデバイスで試しながら書いたものです。

該当部分のソースは次のようになっています。

Panafacom MN1613A

テーマ:

カテゴリー:

前からずっと探していたモノを遂に入手できました。

MN1613A
Panafacom MN1613A、初期の16ビットマイコンです。

このシリーズはどれも入手困難なので贅沢は言えないのですが、一応MN1611かMN1613を優先して探していました。

まずMN1610は+12V, +5V, -3Vの3電源、MN1610Aも+5V, -3Vの2電源を要求します。MN1613AはMN1613とピン数が異なる上にデータシートが見当たらず、半導体コレクション展示会場くらいしか情報がありません。MN1617も資料が無い上にパッケージがQFPしかありません。

Sharp LH70108

テーマ:

カテゴリー:

海外からZ86C91を取り寄せたときについでに買ってみたものです。

LH70108-8
SharpのLH70108-8、NECの著作権表示が気になりますね。

「70108」という番号からピンと来る人もいるかもしれません。

そう、これはNECのμPD70108(V20)のセカンドソースです。V20, V30は日本製のマイコン(Intel 8088が元ですが)としては珍しく多くのセカンドソースがあったのでした。

Zilog Z86C91

テーマ:

カテゴリー:

安さにつられてZ8682を買ったらいろいろ難点があって、改めて入手しなおしたのがこれです。

Zilog Z86C9112PEC
Z86C9112PEC、CMOSの12MHz版です。末尾がPECということは動作温度範囲が一般的な0°C~70°Cではなく-40°C~105°Cの拡大版ですね。そんなのを必要とすることは無いでしょうが。

これは1988年製ですが、16MHz版は今でも現行品のようです。

このZ86C91というのはZ8681をCMOS化して内蔵RAMを拡張したものになります。Z8613, Z8681などではレジスタ空間の80H~0EFHまでは未使用でしたがここにもRAMを割り当てています。

Universal Monitor コマンド一覧

テーマ:

Universal Monitor Z8の基本機能が現在対応している全プロセッサで使用可能になりました。

前回はコマンドの概要のみを書きましたが、今回はコマンドラインの形式も書いておきます。

コマンドは原則1文字ですが、PIなどのように2文字のものも一部あります。
<addr>,<offset>といった数値パラメータは16進表記で必要以上の桁数を入力した場合は末尾が使用されます。
英字の大文字小文字は区別されません。
コマンドとパラメータの間・パラメータとカンマの間には空白を入れても構いません。ただし行入力バッファは短いので注意してください。

Fairchild F3853

テーマ:

カテゴリー:

昨日のF3850と組み合わせて使うメモリインターフェイスも手に入れました。

Fairchild F3853PC
F3853 SMI(Static Memory Interface)です。末尾「C」ですから動作温度範囲0°C~+70°Cの民生用ですね。1980年のフィリピン製。

前回書いたようにF3850 CPUにはアドレス回路が入っていません。Program Counter, Stack Register, Data CounterのアドレスレジスタはF3851, F3852, F3853, F3856が持っていて、CPUからはコマンドで設定・参照するようになっています。16ビット長なのでメモリ空間は64kBとなります。

Fairchild F3850

テーマ:

カテゴリー:

以前Twitterで「売ってるよ」という情報があってその時は思いとどまっていたのですが、結局買ってしまいました。

Fairchild F3850PL
FairchildのF3850、F8ファミリの一員のCPUです。

末尾が「L」なので動作温度範囲が-40°C~+85°Cのいわゆる産業グレードですね。1982年製です。

このCPUはアドレス回路(レジスタもバスも)を持たないというちょっと変わった構成になっています。それらは別のメモリインターフェイスユニットにあり、最低でも2チップが必要となります。

パーソナルなコンピュータの入力装置事情 (第1回: マイコン時代)

カテゴリー:

久しぶりのこのシリーズ、ハードウェア関連はネタが無くなってきたのでOS・プログラム言語などソフトウェア関連を書こうと準備していたのですが、そういえば入力装置について書いていないことを思い出したので数回にわたって取り上げてみます。

個人で初めてのコンピュータを自作するとしたらスイッチパネルしかないでしょう。

「初めてのコンピュータ」というのは「初めて作る」ではなく「初めて持つ」ものを作るという意味、つまり開発用のコンピュータも無い状況です。

トグルスイッチ(他のスイッチでも構いませんがすばやく簡単に操作できないと後悔するでしょう)がたくさん並んだパネルです。プロセッサを一時的に止めておき、このスイッチでバスに直接アクセスします。スイッチでアドレスとデータを1バイトずつメモリ(RAM)に書き込んでいくのです。

プロセッサの動作中は邪魔をしないように切り離しておきますが、ソフトウェアからスイッチの状態を読めるようにすることもできます。

これは使い勝手はとても悪いのですが、ソフトウェア無しで使えるという他にないメリットがあります。

MC68kボード復活作戦(その3)

テーマ:

カテゴリー:

前回ACIAを交換してみたところまで書きました。

レベルコンバータのMAX232も手持ちのSP3232と換えてみましたが、やはり駄目でした。チャージポンプのキャパシタが悪いのかもしれませんが、この基板はあまり弄りたくないので迷うところです。

SP3232Eのデータシートによるとチャージポンプ用キャパシタは0.1µFで十分と書かれていますが、上限については見当たりません。この基板では当時のMAX232の資料を元に22µFのケミコンを使っています。30年の間にドライアップなど劣化したのか、単純に容量が大きすぎるのか。

いろいろ試しているうちにレベルコンバータのICを抜いているとTxDataに信号が出ていることに気づきました。リセット直後に130回ほど変化しています。

これはオープニングメッセージかもしれません。

同じころソースコードから通信条件が 7ビット・偶数パリティ・ストップビット2 であることもわかりました。今ならこんな設定にはしませんが、元になったモニタの設定をそのまま流用したようです。

ページ