現在地
マイコン
マイコン
マイクロプロセッサ・マイクロコントローラ等です。
古のマイコン開発法(その3)
カテゴリー:
その2で市販トレーニングキットと同じように使えるようになりました。
しかしまだハンドアセンブルしたバイナリを入力して実行することしかできません。何らかの高級言語を使いたいところです。そうなると16進キーパッドや7セグメントLED表示器では不足です。
というわけで......
キーボード
16進キーパッドと異なりスイッチを並べて自作するのは難しいですが、当時でもキーボードは入手できたようです。
もちろんUSBのような共通のインターフェイスがあったわけではありません。単にキースイッチが並んでいるだけで自分でマトリクスを配線しなくてはならないもの、マトリクスの配線までされているもの、エンコーダまでついているものなどがあったようです。マトリクスタイプならキーパッドの数が増えただけのようなものなのでソフトウェアの変更は容易でしょう。
ディスプレイ
表示装置そのものの製作は困難なので既製品を利用します。最も安価なのはテレビで代用する方法で、ビデオ入力が無い場合はRFモジュレータを用意してアンテナ端子から入力します。
古のマイコン開発法(その2)
カテゴリー:
その1でプログラムを実行できるようになりましたが、スイッチを操作して書き込むのは非常に手間がかかります。また電源を切れば消えてしまい、再度入力しなくてはなりません。
バッテリバックアップ
SRAMを電池でバックアップ(あるいは電源を入れっぱなしに)すれば毎回入力しなくて済むようになります。
プログラムを暴走させて壊してしまうリスクはありますが、RAMを2つ搭載して片方の書き込み信号をスイッチで切れるようにして保護する方法もあります。
キーパッド
16進キーパッドと7セグメントLED表示器を搭載すれば入力が楽になります。
これを制御するためのプログラムはスイッチ操作で入力する必要があります。必要最小限のプログラムをスイッチ操作で入力し、キーパッドが使えるようになったらそれを利用して機能を拡張していくことで効率よく入力できます。
カセットインターフェイス
カセットインターフェイスを製作すれば入力したプログラムを保存しておくことができます。
古のマイコン開発法(その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との相違点はどこなのかということで両者のデータシートを見比べているのですが、相違点が明確に書かれていません。
ハードウェア的にはN8X300の上位互換らしく、そのまま挿し替えが可能なようです。
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が入れ替わるだけなのでわかって使えばそのまま使用可能です。