2010-08-29

Arduino検討中

ケンさんのプログラムを横目で眺めつつ色々部品の検討中。

Arduino自体はなんでもよさげ…まぁ今後遊ぶ事も考えてArduino Duemilanove328を、出来上がったアプリの必要システム要件を見て実際のDAC埋め込みはちっこいのを考えるかも…
LCDはまぁなんでもよさそう…適当に16文字x2行のをピックアップし、データバスの4ビットを潰して残り4ビットでやる形でやればよさそう。関連するピンヘッダも調達。Arduino+LCD乗っける基板も必要そうだが…こっちは当面ブレッドボードで仮組み予定。

色々検討したところ…

・VRは普通のVRの電圧値をArduinoのADCでデジタル化し、その値を変換かけてデジタルボリュームとしてレジスタに突っ込んでいる。特に何もしなくてよさげかな…将来的にデジタルボリューム使うようになった際に考えよう。
・SPDIF/I2S切り替えスイッチは…I2S以外で使う気ないからI2S固定でいいや(笑)
・デジタルフィルタ切り替えスイッチは…まぁ、これも後で考えよう
・DPLLのレンジ切り替えと、シリアル入力のフォーマット切り替えは同じロータリースイッチをアナログ入力で読んで変換かけている模様。12連くらいのロータリースイッチを適当な間隔で抵抗貼り付けてコントロールすればいいかしら…

んで、ふと気づく…(順序入れ替えてます)

   lcd.print("I2S32bit");
   format = Bxxxxxxxx;

   lcd.print("I2S16bit");
   format = Bxxxxxxxx;

   lcd.print("I2S32bit");
   format = Bxxxxxxxx;


   lcd.print("RJ 32bit");
   format = Bxxxxxxxx;

   lcd.print("RJ 24bit");
   format = Bxxxxxxxx;

   lcd.print("RJ 16bit");
   format = Bxxxxxxxx;

   lcd.print("LJ 32bit");
   format = Bxxxxxxxx;

下位4ビットは固定(xxxx)。
上位2ビットでビット幅、その次の2ビットでフォーマットを指定しているように見える。
フォーマット指定はI2S(xx or xx ?) RJ(xx) LJ(xx)で合ってるだろう。
問題は、ビット幅。多分32bit(xx) 24bit(xx) 16bit(xx) なんじゃないだろうかと推測するが、I2S32bit(デフォルトにある奴)が納得いかん。
そーいやI2S24bitもないなぁ…ということで、恐らくdefaultがI2S24bitでデータが(xxxxxxxx)の間違いではないかと思われる。


そういやDPLLの
   case 7:
   lcd.print("HighBand");
   return xxxxxxxx;

もreturnの型がB指定されてないので、凄い値が帰りそう…break文も抜けてるとこが一箇所あるな…

とりあえず質問を投げてみて、回答待ちすることにします。ついでに、VRやロータリースィッチの抵抗値も聞いてしまえw

===追記===
ES9018のレジスタ内容への言及は色々あってまずそうなので、削除。

0 件のコメント: