MIC_StartLimitedSamplingAsync

構文

#include <twl/spi.h>
MICResult MIC_StartLimitedSamplingAsync(
            const MICAutoParam*    param,
            MICCallback            callback,
            void*                  arg );

引数

param MICAutoParam型の自動サンプリング設定構造体へのポインタを指定します。
callback コールバック関数へのポインタを指定します。
このコールバックは割り込みハンドラ内から呼び出されます。
arg コールバック関数へ渡す引数を指定します。

返り値

MICResult列挙型の処理結果を返します。
非同期処理を正常に開始できた場合に MIC_RESULT_SUCCESS が、何らかの原因で失敗した場合にはそれ以外の返り値が返されます。

説明

マイクの周波数限定自動サンプリングを非同期に開始します。
サンプリング前には PM_SetAmp*() によってプログラマブルゲインアンプをオンにして下さい。
この関数はARM7に周波数限定自動サンプリング開始要求を発行し、ARM7からの応答を待たずに呼び出し元に戻ります。 ARM7における処理結果はユーザコールバック関数に渡されるresult引数によって取得する必要があります。 この関数が失敗した場合は非同期的な操作は行われず、ユーザコールバック関数も呼び出されません。
なお、入力音量が最大値及び最小値を越える場合には出力データはクランプされます。

周波数限定自動サンプリングは通常の自動サンプリングと異なり、実際のサンプリング操作をハードウェアで行います。 このため、厳密な周期で安定したサンプリングを行うことができ、ARM7でのCPU負荷が緩和されることにより無線通信などの他のI/Oに与える影響が少なくなります。 反面、ハードウェアのサポートする周波数以外ではサンプリングを行うことができません。 param->rate に指定可能なサンプリング周波数は以下の通りですが、サウンドのマスター周波数設定に依存して更に以下の内の4つに限定されます。 限定された周波数以外を指定した場合には MIC_RESULT_ILLEGAL_PARAMETER が返されます。

サウンドマスター周波数
設定可能な周波数
説明
32.73kHz MIC_SAMPLING_RATE_32730 32.73kHz (マスター周波数の1/1)
MIC_SAMPLING_RATE_16360 16.36kHz (マスター周波数の1/2)
MIC_SAMPLING_RATE_10910 10.91kHz (マスター周波数の1/3)
MIC_SAMPLING_RATE_8180 8.18kHz (マスター周波数の1/4)
47.61kHz MIC_SAMPLING_RATE_47610 47.61kHz (マスター周波数の1/1)
MIC_SAMPLING_RATE_23810 23.81kHz (マスター周波数の1/2)
MIC_SAMPLING_RATE_15870 15.87kHz (マスター周波数の1/3)
MIC_SAMPLING_RATE_11900 11.90kHz (マスター周波数の1/4)

注意

NITROプラットフォーム上やCODECをCODEC-DSモードで動作させる場合には周波数限定自動サンプリングは行うことができないため、 代わりに自動サンプリング操作用関数MIC_StartAutoSamplingAsync()が内部的に呼び出されます。

TWL のマイク入力には、微小なノイズが混入することが判明しています。対策はこちらをご覧下さい。

参照

MIC_StartLimitedSampling, MIC_StopLimitedSamplingAsync, MIC_AdjustLimitedSamplingAsync

履歴

Ver. 2009/06/25 PM_SetAmp*() の使用について追記
Ver. 2008/01/09 CODECモードによる動作の差異についての注意を追記
Ver. 2007/11/17 初版