Tweet ようやく火入れが終わりました。 PrMプロジェクトの各モジュールはスイッチや可変抵抗で制御可能な機能は 全て外部から制御するようになってます。 PrMプロジェクトがミキサーの全ての機能をOSCから制御することをベース に考えているからです。もちろん、そのOSC制御を引き受けるのがPICrouter になるのですが、音量調整などは0~3.3Vの範囲の電圧でVCA制御となります。 PICrouterのPWMは4個しかないので全く足りません。 さらに、フェーダーやボリュームの入力も直接モジュールに接続せず、一旦、 PICrouterで受けてからモジュールに渡したいので、アナログ入力もデフォの 14ポートだと足りなくなる恐れがあります。 と言うわけで、SPI経由で制御できるAnalog DevicesのDAC「AD5328」を 3個とADC「AD7490」を1個搭載したPICrouter用のシールド基板を作成 しました。DACは12bit 8ポートx3で24ポート、ADCは12bit、16ポートで 全て共通のSPI2で制御する構成です。 今まで、ディジーチェーンで連結したICの制御は経験があったのですが、 別々のICをCSピンで分けて同一のSPIから制御したことがなかったので、 その辺が上手く行くかドキドキでした。 結果的には上手く動作させることが出来たのですが、ハマった点をメモと して書いておきます。 まず、AD5328です。こちらは割とすんなりと動いてくれました。初期設定 がちゃんとICに届けば問題なし。LDACピンを3個で共通にして、SYNCピン を別々のポートにしたら、3台とも素直に動いてくれました。オシロで電圧 の変化を確認して、AD7490に取りかかって、SPIの設定を書き換えて、 ふとAD5328を動くか確認したところ・・・動かない。なんで?とSPIの 設定を元に戻しても動かない・・・。なんで??とSPI設定を見直したり、 コードを見直しても分からず。で、ひょっとしてと思って電源をオフ→オン してみたら動きました。PICrouterへはMPLAB ICD3で書き込みを行っている のですが、このとき、書き込み後に起きるリセットだとAD5328はオンオフ されていないのが原因みたいです。オシロを見てみると、ファームの書き換え…