工作

個人的に製作してきたものの紹介です。

電子的なものがほとんどですが、そうでないものも出来るだけ出していきたいと思っています。

回路図、ソースコードなどは出来ればすべて載せたいのですが、以下の理由で難しいものが多いです。

  • 回路図については無いものが多い
  • 残っていないのではなく、そもそも書かないことが多かったためです。

    • どうせ1台しか作らないのだから紙に線を引くのと、実際に配線する手間は大して違わない。
    • バス配線などは書かなくてもわかる(各デバイスのD0同士を接続するなど)。ずらすなど注意を要するところだけメモがあれば困らない。
    • 雑誌などの記事・データシート・アプリケーションノート等を参考にしたところはそれを見ながら配線すればよい。

    もちろん仕事ならば書きますが。

  • 著作権的に公開でない
  • 特に古いものでは雑誌など掲載のものをベースにしているものがあり、オリジナルと分離できないものは公開できません。

  • 古いメディアに入っている
  • 5インチや8インチのフロッピーだったり、PC-9801フォーマットだったりして読むのが難しいものがあります。

  • 本当に失われた

MP3プレーヤキットの拡張

2025-03-23 22:45 — asano

テーマ

カテゴリー

先日のPC電源騒動の時に作業場所を確保しようと片付けていて昔作ったボードを発見しました。


このボードが何かというと、MP3プレーヤキットを拡張しようとして作ったものです。再生中の曲番を表示したり、ボタンを増やそうとしたのでした。

載っているICは左右が74HC164で、中央が74HC165です。

EEPROMにアクセスできなくなった(その1)

2025-03-13 02:02 — asano

テーマ

カテゴリー

しばらく前から頭を抱えている問題があります。

UA6527PのところでRP2A03ボードを使って動かした話をサラッと書いていますが、実は結構面倒なことになっていたのです。

CPUを載せ替えて試すということでこれまで載せていなかったEEPROMを搭載したのですが、なぜか書き込みが全てエラーになってしまいました。

書き込めないとなるとまず疑うのはWP(Write Protect)ピンです。

確か内部プルダウンされているのでオープンにしていたはずですが、念のためデータシートを確認すると……

今回載せたMicrochipの24LC64だとVssVccいずれかに接続せよとあるではないですか。

どうもAtmel AT24C64は内部プルアップあり、Microchip 24LC64は無しのようです。秋月も昔はAT24C64だったと思うのだけどいつ切り替わったのだろう?

LED Flasher

2024-01-09 22:43 — asano

テーマ

カテゴリー

去年入手したLM3909、せっかくなので一番簡単なLED Flasherを組んでみました。


『初歩のラジオ』1981年1月号掲載のものをそのまま作ってみました。

とてもシンプルで、外付け部品は100μFの電解コンデンサとLEDのみです。

これに電源として1.5Vを加えると約1秒に1回LEDが光ります。デューティは低く光るのはほんの一瞬です。ちなみに電源電圧を上げると点滅周期が短くなります。

NS32081を追加してみた

2023-12-13 20:58 — asano

テーマ

カテゴリー

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


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

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

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

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

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

2023-11-20 22:50 — asano
カテゴリー

前回プログラムが動き始めたので、例によって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ボード(動作確認編)

2023-11-14 23:02 — asano

テーマ

カテゴリー

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

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

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

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

2023-11-12 23:38 — asano

テーマ

カテゴリー

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


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

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

PLLシンセサイザ(その14)

2023-10-23 16:06 — asano

テーマ

カテゴリー

今回はその9で軽く触れたリングオシレータの電源を電流制御にするのを試したいと思っていたのですが、いろいろあって全く進捗していないので......

初期に作った74LS624にるVCO74HC4046によるVCOのF-V特性を測ってみました。

まずは74LS624です。


Cx=47pF でRNGを 0V, 2.5V, 5V と変化させた場合です。

リングオシレータを見た後では可変範囲狭いなという印象が強いですね。

ただ下から上まで単調で直線性も悪くないので、何か変な現象が出たときの比較用には良さそうです。

続いて74HC4046です。

PLLシンセサイザ(その13)

2023-09-23 21:29 — asano

テーマ

カテゴリー

今回もPLLというよりVCOの話になっています。

その12で書いたようにVCOのF-V特性が比較的手間がかからず測れるようになったのでいろいろ見てみます。

まずはTC74HC14APでリングの段数を1, 3, 5段にしてどうなるかです。


下の方が乱れているのは前回同様ですが、3,5段はかなり酷いですね。

一応私としてはこれが本命と考えています。

続いてもう少し周波数の高い方の例としてTC74AC04APについて同様に......

PLLシンセサイザ(その12)

2023-09-12 23:44 — asano

テーマ

カテゴリー

前回周波数カウンタ機能が動き始めたので今回はいよいよVCOのF-V特性の自動測定です。

D/A値を0~4095まで5刻みで増加させながら以下を実行していきます。

  1. D/A値をセット
  2. 1秒待つ
  3. D/A値と周波数をシリアルに出力

ターミナルソフトでこれを記録しておきグラフなどの処理を行ないます。

2.で待つのは2つの理由があります。

一つはVCOの応答を待つため、とは言ってもループフィルタなどは通っていないので遅延は大きくないはずです。

もう一つは...... こちらの方が重要です。前回書いたようにゲート時間は256msあり、しかもタイマ割り込みで非同期に動いています。仮にゲート時間が始まった直後にD/Aを変更したとするとその結果が出るのは256ms後になります。しかもゲート時間が始まってからVCOの周波数が変わるまでは不正な値をカウントしてしまいます。本来ゲートの切り替わりを2回待つべきですが、0.5秒以上待つことで済ませてしまいました。