ハードウェアMIDI音源の制作[その0]:概要
こんにちは、つきなしです。
これが最初の記事ですが、特に書くことないんですよね。
普通に内容に入っていきます。
作っていきたいのはハードウェアMIDI音源なわけですが、まず要件を下に示しましょう。
- MIDI音源である
- PSG音源とFM音源を積んでいる
- できればオーディオスペクトラムアナライザが欲しい
- AVRで制御をしたい
- 電源はアダプタを使わずシリーズ電源を組む
こんなところでしょうか。とりあえず最低でもこのあたりは満たしておきたい。
ということで色々調べた結果以下のような構成にすることに決まりました
- PSG音源はYMZ294,マスタークロックは8MHz,3つ積むので最大9和音
- FM音源は比較的入手性が良く、ワンチップで制御もお手軽なYM2413で1つ積む
- オーディオスペクトラムアナライザはMSGEQ7をATMega328pで制御する
- メインMCUはATMega328pで16MHzで動かす
- 電源はとりあえず5v,1Aを供給できる回路を作った
1つずつ細かく書いていきます。
YMZ294、昔は秋月で4MHzのクリスタルオシレータとのセットで売られていたみたいなんですがいつからか付属しなくなりました。
そして、なぜか4MHzのクリスタルオシレータは秋月だと表面実装用のものしか売っていません。
そこで、8MHzのクリスタルオシレータを使うことにしました。
"4/8"ピンをLに落とすだけなのでかんたんですね。
チップ自体はよくあるPSG音源で、3和音+ノイズ(ただしノイズを使うときは2和音)といった感じ。
エンベロープもあるけど、すべてのチャンネルに適用されてしまうようなのでチップの使い分けがいる。
3つ積むのはなんとなく。必要なピン数もそんなに増えないしたくさん和音が出たほうが曲を打ち込む時に楽だと思った。
YM2413、このチップに限った話ではないのですが最近FM音源チップの入手性がすこぶる悪いです。
YMF825はありますが、DIP版がないためモジュールを買わざるを得ないのです。
さらにそのモジュールがアホほど高いんですよね。
いろいろ探した結果とりあえずYM2413を使うことにしました。
FM音源6チャンネル、リズム音源5チャンネルの構成で使用します。
オーディオスペクトラムアナライザは別にATMega328pとMSGEQ7を使って作ります。
基板も別なので汎用的に使えます。
こいつ自体は特に変わったところはありませんが、個人的にはLEDの制御が悩みどころでした。
どのようにして70個のLEDを制御するのか。
結局トランジスタアレイICと2SC1815を用いたダイナミック制御をすることになりました。
実際にこの数でやったことがないので動くかどうかは未知数ですが...
MCUにATMega328pを選んだ理由ですが、ピン数とお値段、メモリの容量で決めました。
ATTiny2313も候補に上がっていましたが普通にピン数が足らなくなったので却下。
設計図引いてる段階だとATMega1284pを使っていましたが、74HC595の採用によりだいぶデータ用のピンを節約できたため却下。
1284pは一個で750円もする高級品なのでできるだけ使いたくなかった。
電源回路は全くの無知なのでとりあえずスイッチ、ヒューズ、トランス、平滑コンデンサからの三端子レギュレーターって感じの構成にした。
一応三端子レギュレータのロスも考えて入力は10vにしてあります。
ここも特に書くことないんですよね。
こんなところでしょうか。
結構な長さになったので設計図なんかは次回。