2013.2.28
前へ
次へ
ホームページトップへ戻る

復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります

[第331回]


●MIDIで苦戦(2)

前回はちょっと時間がありませんでしたので、ざっと走り書きをして、回路図だけをお見せしました。

MIDIの回路そのものは特に難しいものではありません。
それから通信のソフトもとりたてて難しいところはありません。

Z8S180をCPUクロック10MHzか5MHzで動かすのでしたら、内蔵するASCIを使ってボーレートを31.25Kbpsにすることもできるということはあとからわかりました([第328回])。
最初はそのようには理解していなかったということもありまして、MIDIはPIC16F886に任せてしまうことにしましたが、Z8S180でやってもPICでやっても、それほど難しいものではありません。

じゃあそのPIC16F886でのプログラムを教えてよ、といわれるかも知れませんが、そこにいきますとただでさえ横道にそれておりますものがさらに大きくそれてしまいます。
ですのでPICのプログラムにつきましてはいずれ時間ができましたときに稿をあらためて書くことにいたします。
ようするにごく普通のRS232C通信を行なうプログラムで、ボーレートの設定だけを31.25Kbpsにすればよい、というようにご理解ください。

PIC16F886で通信を行ないますから、そうするためにはZ8S180とPIC16F886との間で、送信データ、受信データのやり取りをすることになります。
その方法は[第303回]で説明をいたしましたハンドシェーク方式で行なっています。

そこではPIC18F14K50との間でUSB通信データのやり取りをハンドシェークで行なうことについて説明しましたが、相手がPIC18F14K50かPIC16F886かという違いがあるだけで、データをやり取りする仕組みは全く同じです。
USB通信もMIDI通信も実際の通信部分はそれぞれPICが受け持っていますから、CPUの側としてはただ単にPICを相手にして8ビットのデータを受け渡しするだけです。
PIC16F886との間でのデータの受け渡しをするプログラムにつきましても、そのうち実際のプログラム例をお見せすることにいたしますが、今はそれについてもちょっと省かせていただきます。
とにかくPIC16F886を使って31.25Kbpsでデータを送信、受信するプログラムはそれほど悩むこともなく作ることができました。
またZ8S180とPIC16F886との間でデータの受け渡しをするプログラムもできました。

しかし、できたつもりでも、実際に試して見なければ、安心はできません。
それにそもそも前回もお見せしました、MIDIの回路(下図)そのものが正しく働いてくれるかどうかということも確認しておかなければなりません。



MIDIでは5pinのDINコネクタを使います。
一般的な規格では標準サイズのコネクタを使いますが、E−80(仮称)ミニコンではちょっと小型の5pinミニDINコネクタを使います。

回路が正しく機能しているかどうかを確認する簡単な方法は、5pinミニDINプラグを使ってOUT側とIN側を接続して、OUTから出力したデータをINから入力して、それを比較してみることです。
そのために5pinミニDINプラグを入手して、手配線でケーブルの両端にミニDINプラグを接続したものを作りました。



ケーブルを接続して送信/受信テストプログラムを実行して、送信した通りの文字コードが受信されることを確認しました。
さらに念のため、送信中の信号波形をオシロでモニタして、ボーレートを確認しました。
31.25Kbpsということは1ビットのパルス幅が1000/31.25(μs)ということです。
1000/31.25=32μsです。
下の写真はその時のテストで撮った写真ではありませんが、ちょうど1ビット分のパルスをうまくキャッチしています。



送受信のテストもうまくいきましたし、パルス幅もオシロで確認して、ボーレートが31.25Kbpsになっていることもわかりましたから、当初Y様とお約束しました、MIDIのハードウェアはちゃんとできていることが確認できました。

ここまでて止めておけば、そのあと泥沼にはまって苦闘することもなかったのでありますが…。

いえ。
ハード的にはこれでうまくいっているはずなのですけれど。
しかし、実際にMIDI機器を接続して試してみたわけではありません。
当初の考えでは、それはいずれY様に試作版をお送りしたときに、Y様にテストをしていただくというつもりでしたのですけれど。

むむ。
いっそのこと、その前にこちらでもMIDI機器を接続して、うまく動作することを確認できれば、なお良いのではと。
ええ。
この時点ではMIDIについては全く知識ゼロだったにもかかわらず、です。
なんと無謀な、といいますか、まあ、なんと無知な。
でありました。

ところで。
MIDI機器ってなんだ?

いろいろ調べてみましたら。
その昔に一世を風靡した、MIDI音源なるものがあることがわかりました。

おお。
それがよいではないか。
この時点では、なにしろMIDIの知識ゼロでありますから、私の頭にありましたものは、MIDI音源≒Media Playerというイメージでありました。

当然。
MIDIファイルを送れば演奏してくれるだろうと。
おお、なんと、無知な(汗)。

さっそくインターネットで調べて中古品を一台入手してしまいましたよ。



RolandのsoundCamvas sc−88です。
これがまた、とんでもない代物でありました。

ああ。
ここまでのくだりをお読みいただいて、
なんと無知なのだろう。
このままでは余りにかわいそうだから、MIDIについて教えてあげましょう。
と、ご親切にもメールをくださったりは、しないでくださいませ。

お話の流れで、最初は全くの無知だったところから順に書いておりますので、今に至るも無知のまま、というわけではございません。
泥沼でもがくことによりまして、今はそれなりに知識を会得しておりますです。

ともあれ。
次回。
いよいよ泥沼にはまってしまいます。

ワンボードマイコンでCP/Mを![第331回]
2013.2.28upload

前へ
次へ
ホームページトップへ戻る