アナログ・デバイセズSigmaDSPにはいくつか世代や種類があるようですが、今回目を付けたのがADAU1701。(同一性能&パッケージで温度のみ車載グレードはADAU1401A)24bitのAD/DAが入ってるだけで凄いのにDSP入りでコーディングが不要。ついでにポテンショメータなどの用途向けに8bitの補助的ADCもついてる。SigmaDSP自身はプログラム格納フラッシュを持たずI2C/SPI経由でパラメータやブートプログラムをDSPに流し込む仕組みで、外部マイコンやPC等から書き込みが可能。EEPROMからブートすることも可能。EEPROMも使えるみたいですね。擬似差動入力や、低消費電力、低ノイズ向けデバイスもありますが、すべての機能が搭載されているわけではないのでアプリケーションに応じて選択するのが良いと思います。手始めに一通りの機能がそろってるADAU1701/1401Aをつかってその後、アプリケーションに応じてデバイスを選択すると良いと思います。低ノイズが要求される場面でADAU1781をAD/DA+デジタルフィルタ代わりに使ってADAU1445をI2SでつなげてGPIO拡張や追加の演算をさせると、低ノイズで高速な制御系が要求される場面で役立つのではないかなと思います。外部にSDカードをつなげたりUARTでprintfしたりといった「汎用マイコン」としての機能はまったくないので、結局外部にコプロセッサとしてのI2C/SPI通信が可能なマイコンが必要となるかも。*1GUI開発環境から外部マイコン用にヘッダファイルも生成してくれるので、それをつかってArduinoとかmbedからSigmaDSPをコンフィグするのもいいかもしれない。SigmaDSPのAD変換結果をリードしたり、DA変換器にデータを流し込んだりするのにI2SかTDMインターフェースを持ってるマイコンがあると便利なはず。最近流行りのドメインスペシフィック開発(特定用途向け限定開発)の流れを汲んでいて、プロパティドリブンとなっている。1kHzの正弦波を出したければ、Toneのアイコンを配置して1000と入力するだけで完成。(Toneのプロパティは周波数)開発環境をそろえる開発はSigmaStudio。現在はXPとVistaと7のみ対応しているらしい*2。ダウンロードはフリー。I2Cマスタのドングルなので、SigmaStudioが生成したhexをSigmaDSPに流し込める自前のI2C環境があるなら、必須ではない。USBiがあると、GUIで制御パラメータを変更したときにリアルタイムに結果を確認できるといった恩恵を享受できるので、あるに越したことはないです。(Digikeyで1万円とちょっと)海外だとArduinoとVSでSigmaDSP書き込み環境を構築している作例も見ることができる。このソフトはダウンロードできるので興味のあるArduino使いの方はDLして試してみてもいいと思います。Labs)なお、USBiはこんな外観。2x5ピンのフラットケーブルもついてくる。(CY7C68053)で回路図は公開されている。ターゲット開発ボードもあるんですが、部品が山盛り載ってて自分の試したいアプリケーションで使うには大改造が必要な感じだったので最初はバラックで組むことにしました。うまくいったらPSoC4+ADAU1701基板起こしますかね。ADAU1701をサンプルでADIからゲット。データシートなど資料ADIのチップは頭から足の先まで末恐ろしい挙動をする悪魔のデバイスなのでマニュアルにのっているデータだけではなく各方面の資料を調べて総合的に判断した方が良さげです。大体使い方がわかってきたところで、バラック組みをしてみました。EEPROMのWPをGNDに落としています。(こうしないとEEPROMからブートしない)ぐちゃっソフトとりあえず、DSPで正弦波を作ってDACから出力しようと思います。3.10.3もありますが、自分の環境だとUSBiが時々見えなくなる現象が起きたので使用を控えました。Projectを選択します。Configurationタブにドラッグし、下図のように結線します。ConfigurationタブからSchematicタブに移動します。ToolBoxから機能パーツを選択します。1)ADAU1701のツリーから以下のパーツを探して、Schematicタブにドラッグしてきます。下図のようになるはず。これを以下の図のように配線する。Tone1には100(Hz)、DCには0、Output1,2はそれぞれDAC0,DAC1をプルダウンから選択する。inv1にチェックを入れるのを忘れずに。これで完成したので、リンクとコンパイルを行う。Projectアイコンをクリックする。ポップアップウィンドウでエラーがないことを確認したら、このウィンドウを閉じる。万が一エラーが出たら未結線のコネクションがないかもう一度確認する。Connectをクリックする。このときUSBiが接続されていない旨のエラーが出た場合(下図のエラー)USBiを使ってない場合はそのままOKを押して次へ。使っている場合はUSBiの接続や、ドライバがこけていないか確認する。Downloadをクリックする。すると、ボードとの接続が開始され、Schematicタブでプロパティ変更を行うと瞬時に結果が反映される。DAC0,DAC1はADAU1701の46,45番ピンにアサインされているので、オシロのプローブを当たると下図のようになるはず。Invertを挿入しているのでDAC0の信号を反転した波形が出力されているはず。下図のようにバイアスを与えてみる(DCのプロパティに1を代入)と半波整流回路を通した後のような波形が得られる。E2PROMを選択する。EEPROMからパラメータをロードしてDSPを起動することができる。ほかにも多彩なフィルタやヒルベルト変換、サンプルホールドなど、必要と思われる以上の機能が詰まっていて、遊び甲斐がありそうです。