電音の工場ブログ

趣味の電子工作を中心としたブログです.音モノの工作が多いです.

中庸版(続)

中庸版(続)

id:Chuck:20060623#p1 の続き。

ターゲットはあくまでAVRPICは捨てました。

ベースラインとしては、スイッチ~プログラムの基本はなるべくワンチップで行う。信号切り替えのリレーなりアナログスイッチ部分は仕方ないけれど、I/Oのエンコーダ、デコーダは使わない方針で。

命題は、

(前略) 3ループでは心もとない。何人かの方から「もっとループ数を」「もっとプログラム数を」「MIDIで切り替えたい」といったご要望を頂いている。

8ループ位が中庸でいいよね、ということで考えてみる。3-3-1 を拡大する方向でループ数を増やす、その上でMIDI対応を乗せる。

以下、逡巡。

  • 一応中途半端ながら公開していた 16ループのMIDI FX SW'er を半分にするのはどうだろう。
    • いやしかし AT90S8535 が廃番だ。
    • 代替で ATmega8535 というのがある。
    • 購入店が限られるし、少々高い。
  • それじゃ新規に 8ループ。
  • MIDIはどうする?
    • 立ち上げ時に1本見て、HならMIDI、Lなら3-3-1拡張型でどうか。
  • 3-3-1の拡張ということは、フットスイッチも8つ並べるのか?
    • スイッチをマウントすれば8ループだが、減らせば6ループでも5ループにでもできるということでどうだろう。
  • 肝心のデバイスだが…
    • 40ピンものだと余裕だけど、ATmega8535は高い。表面実装の ATmega64/128は嫌*1
    • 現在の入手性からいうと 28ピンもののATmega48/88/168 ということになるのでは?
    • バイスはいいけど、I/Oが連続8bit取れない
    • な、なんだってー!
      • 8bit揃っているのはPORTBとPORTD、PORTBはプログラミング端子だから、ループ出力に繋ぐと書き込み時に危険。
      • PORTDは?
      • MIDIのときに使う UARTのポートがあるのだ。
      • 世知辛い…
    • 7ループならなんとかなりそうだが
      • !!!

ということで、わけがわからないけれどさらに脳内グルグル(どかーん)を繰り返し、ATmega48/88/168シリーズであれば、

機能 I/Oポート 備考
7ループ出力 PORTC0-6  
7スイッチ PORTD1-7 フットスイッチに立ち上げる
MIDIの時はタクトスイッチでOK
MIDI IN PORTD0  
EDITスイッチ PORTB0  
WRITEスイッチ PORTB1  
UP/DOWNスイッチ
またはロータリエンコーダ
PORTB6-7 フットスイッチに立ち上げる
MIDIの時はロータリエンコーダが便利かと
LED表示出力 PORTB3-5 SPI利用*2
初期状態取込用制御 PORTB2 MIDI/LOOPSW, MIDI CHなどを
起動時に取り込むためのもの

といったところで、

7ループ+7プログラム×256 or 512バンク

または設定によって、

7ループ MIDI切り替え(128プログラムx2 or 4バンク)