マイコン

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

Motorola MC68HC11

2019-09-28 23:48 — asano

テーマ

カテゴリー

COP402Mとともに入手したのがこれです。

MC68HC11A0FN
MotorolaのMC68HC11A0FNです。

このMC68HC11シリーズにはメモリ容量や搭載するI/Oデバイスによってさまざまなバリエーションが存在します。

型番の「A0」の部分がバリエーションを表していて、この「A0」はROM無しのものになります。

続く「FN」はPLCCパッケージであることを表します。他にDIPの「P」などもあり、本当はそちらが欲しかったのですが入手しやすかったのはこのPLCCでした。

最後の行の末尾「8922」がデートコードですから1989年製、これでも30年モノですね。

COP402M

2019-09-26 22:37 — asano

テーマ

カテゴリー

今度のは他の石を買うついでに1つ試しに買ってみたものです。

COP402MN
National SemiconductorのCOP402MN、ROM内蔵が基本なファミリですがこれは珍しくROM外付けタイプになっています。

買うときに確認したのは、ROMを外付けできること、データシートを入手できること、(可能なら)アセンブラが入手できることくらいだったのですが...

いざ動かそうと思ってデータシートをよくよく確認したら厄介なシロモノでした。

まずROMは確かに外付けできるのですが、メモリ空間は1k×8bitしかありません。しかも読み出し専用です。

RAMは64×4bitを内蔵しています。外部バスは無いので増設はできません。ここであれっ4bit幅と思ってデータシートのブロック図を見るとALUも4bit幅なので、型番の「4」は4bitを表しているようですね。

TLCS-90ボード

2019-09-25 23:20 — asano

テーマ

カテゴリー

EMILY Boardで動かした2番目のCPUは東芝 TLCS-90の一員TMP90P802APです。

TLCS-90ボード
TMP90P802APを動作させるために新たに作ったのはこの基板だけです。

基板 表面
基板上の部品はほんのわずかです。見えているものの他、CPUソケットの内側にパスコンと若干のプルアップ抵抗があります。

CPUのTMP90P802APの左にあるのはTTL-232R-5V用のシリアルコネクタ、内蔵UARTに接続されています。

EMILY Board

2019-09-24 21:08 — asano

テーマ

メモリ基板、確かにメモリではあるのですがそれだけでもないので「EMILY Board」と名付けました。

Environment for Microprocessor Introduction ... の略というのはもちろん後からのこじつけで、二式大型飛行艇の連合国側コードネームからの命名です。

二式大型飛行艇
写真は鹿児島の鹿屋航空基地資料館に展示されている二式大型飛行艇、唯一の現存する機体のはずです。

これだけではなんなのでこれまで書かなかった資料編をお送りします。

コネクタ ピン配置

まずは基板上部のCPUボードへのコネクタです。

6502ボード(ソフトウェア編)

2019-09-22 23:00 — asano

テーマ

ハードウェア編に続いて今回はソフトウェア編です。

最初のテストはJMPでループを作ってみます。これは3バイト命令なのできりの良いアドレスに配置すればA0, A1が変化しA2以降のアドレスは変化しません。

これでメモリ基板から読んで実行できていることがわかります。メモリ基板のターゲット側ポートはこれまで未確認だったのですが、ここで確認が取れました。

この後はメモリへの書き込みなど一つずつ確認していくのが堅実だとは思いますが、一気にUniversal Monitorの移植に進むことにしました。

実はこの時点ではR65C51 ACIAは未搭載だったのでメモリ基板のコンソール機能を利用します。この機能も未確認なのでまずはオープニングメッセージを表示するところまで移植してみます。

6502のアセンブリ言語を書くのは初めてです。

6502ボード(ハードウェア編)

2019-09-20 23:54 — asano

テーマ

カテゴリー

メモリ基板: 現状と今後の予定で製作中と書いた6502ボードが動き出しました。今回はハードウェア編です。

6502ボード
メモリボードに接続することを前提にしているので6502以外には6551 ACIAを積んでいるだけです。

メモリボードの共有メモリ経由でコンソールが使えればACIAは無くても困らないのですが、6551を使ってみたいという気持ちもあって搭載してみました。

基板 表側
表側、上のコネクタはメモリボードへの接続用です。

Toshiba TMP90802AP

2019-09-18 23:41 — asano

テーマ

カテゴリー

東芝製のこんなマイコンが手に入りました。

TMP90P802AP
TMP90P802AP、あまり聞いたことの無い型番ですがTLCS-90という東芝の独自アーキテクチャのものです。

このTLCS-90の面白いところはアセンブリ言語のソースコードレベルでZ80そっくりなことです。バイナリの互換性はありませんが、ソースからアセンブルしなおせば移植は容易なのではないかと思います。

80系アセンブラのテクニックの最初に書いたようなバイナリコードに依存したものは駄目でしょうが...

そもそもこれはパソコン的用途ではなく組み込みをターゲットにしていますから、バイナリ互換性は必要ないと考えたのでしょう。

むしろバイナリ互換性を捨てたことで変なしがらみを切り捨てたといえるのかもしれません。

メモリ基板: 現状と今後の予定

2019-09-12 21:42 — asano

テーマ

カテゴリー

今回はメモリ基板の現状と今後の予定を書いてみます。

まずは今動いているところです。

  1. 4k×8bitのRAMはホスト側から(シリアル経由で)アクセスできています。

    ターゲットCPU基板がまだ1枚も完成していないのでターゲット側からのアクセスは未確認ですが、ただ接続するだけなのであまり心配はしていません。

  2. シリアルからのコマンドでRESET信号を発生させることができます。ちょっとしたオマケ機能です。起動用のプログラムをRAMにロード後リセットできたら便利かなと。

    ROMエミュレータではアクセス中はターゲットからのアクセス不能になり暴走するのでアクセス中"L"になる信号を用意していましたが、せっかくDPSRAMを使っていることでもありRAMアクセスとは独立させています。

メモリ基板: DPSRAMを使った理由

2019-09-10 23:41 — asano

テーマ

カテゴリー

前回に引き続きメモリ基板についてです。今回はDPSRAM構成になった理由を書いてみたいと思います。

これまでに検討した方式には次のようなものがあります。

  1. SRAM only
    一番最初に考えたのはSRAMのみを使うものです。256kbit(32k×8bit)SRAMを2つ使えば多くの8ビットCPUのメモリ空間を満たすことが可能です。これをROMエミュレータと同様に切り替えて使います。ターゲットと同時にアクセスすることはできませんので、アクセスするときはターゲットCPUをリセットしておきます。
    ターゲットとして特定のCPUを想定しないのでZ80のBUSRQWAITのような信号を使ってアービタを実装するわけにはいきません。

    起動させるだけならこれでも構いませんが、何らかのモニタを動作させようとすると最低限コンソールが必要です。

メモリ基板

2019-09-09 23:48 — asano

テーマ

カテゴリー

作りかけで何度も中断し放置してきたメモリ基板がやっと動き出しました。

メモリ基板
これ構想しはじめたのは何年も前、製作に着手してからでも半年近く経過しています。一気にやれば大して配線量はないんですけどね。

ここでも紹介しているように歴史的なプロセッサを多数持っていますし、珍しいのを見かけて買ってしまうことも多くどんどん増えています。できれば単なるコレクションではなく動かしたいと思っているのですが...

今時のマイコンは高速なので、周辺回路(最低限メモリとUARTなど)をエミュレーションさせる方法もあります。AVRマイコンなどのGPIOをターゲットのバスに直結してあとはソフトウェアで処理するわけです。これはこれで面白いとは思いますが、個人的にはちょっと違う気がします。