現在地

マイコン

マイコン

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

Iskra EMZ1001

テーマ:

カテゴリー:

しばらく前にTwitter(現 X)でこのEMZ1001を購入された方がおりまして、それでどんな石なのだろうと調べているうちに欲しくなってしまい、遂にポチってしまったのでした。


Iskra社のEMZ1001、末尾「E」は動作温度範囲0~85℃のもののようです。

聞き慣れないプロセッサですが、これはAMI S2000の互換品です。というかIskraとAMIの共同開発らしいのですが、この辺り情報が少なく詳しくはわかりません。それでもEMZ1001とS2000が互換だというのは確かなようなのでS2000のデータシートを元にして書いていきます。

S2000ファミリは命令幅が8ビット、データ幅が4ビットのプロセッサです。

NS32081を追加してみた

テーマ:

カテゴリー:

NS32016ボードのコメントにちょっと書いたようにNS32081 FPUを搭載してみました。


空きエリアに24ピンソケットを置いてNS32081D-10を載せます。

このFPUはたったの24ピンしかないのにバスは16ビットあります。接続は簡単でデータシートの通りにNS32016の同名の信号と接続するのみ、CPU空間のデコードを必要とするMC68881などよりシンプルです。あ、クロックだけはNS32201から引っ張ってきます。

MC68881/68882と異なり複数搭載はできません。いや、外部にセレクタ置けば出来なくはないのかな?

ハードウェア的に接続出来たら次はソフトウェアですが......

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

カテゴリー:

前回プログラムが動き始めたので、例によってUniversal Monitorの移植を行なっています。似ているプロセッサとしてMC68000をベースに、HEXファイル関係については長いアドレスに対応したH8/300Hが元にしています。

現時点でD(ump), G(o), S(et), L(oad), P(unch)の各コマンドが動作するようになっており、引き続きR(egister)の実装を進めているところです。

ということで気付いたことを書いてみようかと思います。

バイトオーダー

NS32000のバイトオーダーはリトルエンディアンなのですが、命令語に含まれる即値やディスプレースメントなどはビッグエンディアンで格納されます。

面白いのはディスプレースメント(絶対アドレッシングのアドレスも含む)は可変長で、最初のバイトの最上位ビットが"0"なら符号付7ビット、上位2ビットが"10"なら符号付14ビット、"11"なら符号付30ビットになることです。

NS32016ボード(動作確認編)

テーマ:

カテゴリー:

今回はNS32016ボードの組み立て終わってからUniversal Monitorの移植を始めるまでの動作確認編をお送りします。

まずは発振器とTCUのみで動かしてみます。CPU→TCUの信号が数本あるので仮にプルアップしておきます。これでPHI1, PHI2が出ていることを確認します。

リンギングが酷いですが、とりあえずTCUは動作してそうですね。

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

テーマ:

カテゴリー:

約半年ぶりにマイコンボードを作ってみました。


今度のはNS32016のボードです。もちろんEMILY Boardを使っています。

8ビットバスのNS32008を使った方が配線が少し楽になりますが、こちらは入手しずらいのと、NS32016はいくつも持っているからです。

TMS7000

テーマ:

カテゴリー:

未動作のプロセッサが積み上がってる自覚はあるんですが、珍しいプロセッサ見かけるとつい買ってしまいます。一期一会な面がありますからね。

というわけでこれ。


Texas InstrumentsのTMS7000です。

TMS7000ファミリは8ビットのシングルチップマイコンですが、この7000はROM無しのものです。他に2kB/4kBのマスクROM内蔵のものやピギーバックなどもあります。

このファミリには動作モードが以下の5つあります。

高速Z80

テーマ:

カテゴリー:

Z80 CPUは以前にも取り上げました(1回目2回目)が、またまた買ってしまいました。


最高クロック20MHz版です。

今さら大昔のCPUを動かすのに速度を追求してもしょうがないと思ってクロック上限には拘っていませんでしたが、PLLが動き始めているのでオーバークロックで遊んでみても面白いかもと考えが変わってきました。

さらにDIP版の入手が難しくなってきたような話も聞いていたので、買えるうちに確保しておこうと思ったのでした。

はじめ安さに惹かれてeBayで買ったのはちょっと怪しかったのですが、追加で買ったこれはDigiKeyからなので真正品と考えられます。

古のマイコン開発法(補足)

カテゴリー:

その1その3までの「古のマイコン開発法」に少し補足しておきます。

これ「無いものは(道具も含めて)作る」のですけど、道具の無い状態では作るのは大変なので「とりあえず必要最小限」を作ってそれを道具にして自分自身を改善していきます。最終的には不要なものでも途中で必要なものは作るしかありません。

持っているものがあれば楽になります。

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

カテゴリー:

その2で市販トレーニングキットと同じように使えるようになりました。

しかしまだハンドアセンブルしたバイナリを入力して実行することしかできません。何らかの高級言語を使いたいところです。そうなると16進キーパッドや7セグメントLED表示器では不足です。

というわけで......

キーボード
16進キーパッドと異なりスイッチを並べて自作するのは難しいですが、当時でもキーボードは入手できたようです。

もちろんUSBのような共通のインターフェイスがあったわけではありません。単にキースイッチが並んでいるだけで自分でマトリクスを配線しなくてはならないもの、マトリクスの配線までされているもの、エンコーダまでついているものなどがあったようです。マトリクスタイプならキーパッドの数が増えただけのようなものなのでソフトウェアの変更は容易でしょう。

ディスプレイ
表示装置そのものの製作は困難なので既製品を利用します。最も安価なのはテレビで代用する方法で、ビデオ入力が無い場合はRFモジュレータを用意してアンテナ端子から入力します。

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

カテゴリー:

その1でプログラムを実行できるようになりましたが、スイッチを操作して書き込むのは非常に手間がかかります。また電源を切れば消えてしまい、再度入力しなくてはなりません。

バッテリバックアップ
SRAMを電池でバックアップ(あるいは電源を入れっぱなしに)すれば毎回入力しなくて済むようになります。

プログラムを暴走させて壊してしまうリスクはありますが、RAMを2つ搭載して片方の書き込み信号をスイッチで切れるようにして保護する方法もあります。

キーパッド
16進キーパッドと7セグメントLED表示器を搭載すれば入力が楽になります。

これを制御するためのプログラムはスイッチ操作で入力する必要があります。必要最小限のプログラムをスイッチ操作で入力し、キーパッドが使えるようになったらそれを利用して機能を拡張していくことで効率よく入力できます。

カセットインターフェイス
カセットインターフェイスを製作すれば入力したプログラムを保存しておくことができます。

ページ