mirror of
https://github.com/rvtr/twl_wrapsdk.git
synced 2025-10-31 06:11:10 -04:00
新規マイクライブラリ用ヘッダファイルを追加
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/twl_wrapsdk/trunk@288 4ee2a332-4b2b-5046-8439-1ba90f034370
This commit is contained in:
parent
bfc9350270
commit
e48811bca0
155
include/twl/mic/ARM7/twl_mic_api.h
Normal file
155
include/twl/mic/ARM7/twl_mic_api.h
Normal file
@ -0,0 +1,155 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlSDK - library - camera
|
||||
File: control.h
|
||||
|
||||
Copyright 2007 Nintendo. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
Company Ltd., and are protected by Federal copyright law. They may
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Log: $
|
||||
$NoKeywords: $
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef TWL_MIC_API_H_
|
||||
#define TWL_MIC_API_H_
|
||||
|
||||
#include <twl/types.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*===========================================================================*/
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
型定義
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
typedef void (*TWLMICFullCallback) (u8 loop);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
定数定義
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
MIC_INTR_DISABLE = (0x0UL << REG_SND_MICCNT_IM_SHIFT),
|
||||
MIC_INTR_HALF = (0x1UL << REG_SND_MICCNT_IM_SHIFT),
|
||||
MIC_INTR_OVERFLOW = (0x2UL << REG_SND_MICCNT_IM_SHIFT),
|
||||
MIC_INTR_HALF_OVERFLOW = (0x3UL << REG_SND_MICCNT_IM_SHIFT)
|
||||
}
|
||||
MICIntrCond;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
MIC_SMP_ALL = (0x0UL << REG_SND_MICCNT_FIFO_SMP_SHIFT),
|
||||
MIC_SMP_1_2 = (0x1UL << REG_SND_MICCNT_FIFO_SMP_SHIFT),
|
||||
MIC_SMP_1_3 = (0x2UL << REG_SND_MICCNT_FIFO_SMP_SHIFT),
|
||||
MIC_SMP_1_4 = (0x3UL << REG_SND_MICCNT_FIFO_SMP_SHIFT)
|
||||
}
|
||||
MICSampleRate;
|
||||
|
||||
// マイク用タイマー定義
|
||||
#define reg_MIC_TMCNT_L reg_OS_TM3CNT_L
|
||||
#define reg_MIC_TMCNT_H reg_OS_TM3CNT_H
|
||||
#define MIC_TMCNT_H_E_MASK REG_OS_TM3CNT_H_E_MASK
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
構造体定義
|
||||
*---------------------------------------------------------------------------*/
|
||||
// MICライブラリ用ワーク構造体
|
||||
|
||||
typedef struct _TWLMICParam
|
||||
{
|
||||
u8 dmaNo; // DMA No
|
||||
MICSampleRate frequency; // サンプリング頻度
|
||||
u8 loop; // ループ
|
||||
void* buffer; // データストア先のバッファ
|
||||
u32 size; // 自動サンプリング格納先バッファサイズ
|
||||
TWLMICFullCallback callback;
|
||||
}
|
||||
TWLMICParam;
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
関数定義
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_DoSampling
|
||||
|
||||
Description: start MIC
|
||||
|
||||
Arguments:
|
||||
|
||||
Returns: None
|
||||
*---------------------------------------------------------------------------*/
|
||||
void TWL_MIC_DoSampling( u16* buffer );
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_StartAutoSampling
|
||||
|
||||
Description: start MIC
|
||||
|
||||
Arguments: id : slave id
|
||||
|
||||
Returns: None
|
||||
*---------------------------------------------------------------------------*/
|
||||
void TWL_MIC_StartAutoSampling( TWLMICParam param );
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_StopAutoSampling
|
||||
|
||||
Description: stop MIC
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: None
|
||||
*---------------------------------------------------------------------------*/
|
||||
void TWL_MIC_StopAutoSampling( void );
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_GetLastSamplingAddress
|
||||
|
||||
Description: stop MIC
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: None
|
||||
*---------------------------------------------------------------------------*/
|
||||
void* TWL_MIC_GetLastSamplingAddress( void );
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_SetAmpGain
|
||||
|
||||
Description: TWLモードのマイクゲイン(PGAB)を設定します。
|
||||
PGABはAutoGainControlが無効になっているときのみ有効です。
|
||||
|
||||
Arguments: gain : 設定ゲイン(0~119 = 0~59.5dB)
|
||||
|
||||
Returns: None
|
||||
*---------------------------------------------------------------------------*/
|
||||
void TWL_MIC_SetAmpGain( u8 gain );
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_GetAmpGain
|
||||
|
||||
Description: TWLモードのマイクゲイン(PGAB)を取得します。
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: gain
|
||||
*---------------------------------------------------------------------------*/
|
||||
u8 TWL_MIC_GetAmpGain( void );
|
||||
|
||||
/*===========================================================================*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* TWL_MIC_API_H_ */
|
||||
98
include/twl/mic/ARM7/twl_mic_server.h
Normal file
98
include/twl/mic/ARM7/twl_mic_server.h
Normal file
@ -0,0 +1,98 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlSDK - library - camera
|
||||
File: control.h
|
||||
|
||||
Copyright 2007 Nintendo. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
Company Ltd., and are protected by Federal copyright law. They may
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Log: $
|
||||
$NoKeywords: $
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef TWL_MIC_SERVER_H_
|
||||
#define TWL_MIC_SERVER_H_
|
||||
|
||||
#include <twl/types.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*===========================================================================*/
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
定数定義
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define TWL_MIC_MESSAGE_ARRAY_MAX 4 // スレッド同期用メッセージキューのサイズ
|
||||
#define TWL_MIC_THREAD_STACK_SIZE 512 // スレッドのスタックサイズ
|
||||
#define TWL_MIC_MESSAGE_ARGS_MAX 7 // メッセージ引数の最大値
|
||||
|
||||
// マイクに関する内部的な状態
|
||||
typedef enum _TWLMICStatus
|
||||
{
|
||||
TWL_MIC_STATUS_READY = 0, // 通常操作待ち状態
|
||||
TWL_MIC_STATUS_ONE_SAMPLING_START, // 単発サンプリング開始待ち
|
||||
TWL_MIC_STATUS_AUTO_START, // 自動サンプリング開始待ち
|
||||
TWL_MIC_STATUS_AUTO_SAMPLING, // 自動サンプリング中
|
||||
TWL_MIC_STATUS_AUTO_END, // 自動サンプリング終了待ち
|
||||
TWL_MIC_STATUS_END_WAIT // 自動サンプリング完了待ち(バッファFULL時の自動終了)
|
||||
}
|
||||
TWLMICStatus;
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
構造体定義
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
// TWLマイク用メッセージデータ構造体
|
||||
typedef struct _TWLMICMessageData
|
||||
{
|
||||
TWLMICPxiCommand command;
|
||||
u32 arg[TWL_MIC_MESSAGE_ARGS_MAX];
|
||||
}
|
||||
TWLMICMessageData;
|
||||
|
||||
// MICライブラリ用ワーク構造体
|
||||
|
||||
typedef struct _TWLMICServerWork
|
||||
{
|
||||
OSMessageQueue msgQ; // スレッド同期用メッセージキュー
|
||||
OSMessage msgArray[TWL_MIC_MESSAGE_ARRAY_MAX]; // メッセージを格納するバッファ
|
||||
TWLMICMessageData entry[TWL_MIC_MESSAGE_ARRAY_MAX]; // メッセージの実体
|
||||
u32 entryIndex; // エントリーインデックス
|
||||
OSThread thread; // TWL-MIC用スレッド
|
||||
u64 stack[TWL_MIC_THREAD_STACK_SIZE / sizeof(u64)]; // TWL-MIC用スレッドのスタック(小さくできる)
|
||||
TWLMICStatus status; // マイク内部状態管理変数
|
||||
TWLMICPxiCommand command; // ARM9からのコマンド保存用
|
||||
u8 data[TWL_MIC_PXI_DATA_SIZE_MAX]; // ARM9からのデータ保存用
|
||||
u8 current; // 受信済みデータ個数 (バイト単位)
|
||||
u8 total; // 最終データ個数 (1 + 後続コマンド*3)
|
||||
}
|
||||
TWLMICServerWork;
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
関数定義
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_InitServer
|
||||
|
||||
Description: ARM7側とやりとりを行うための準備を行います。
|
||||
|
||||
Arguments: priority
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
void TWL_MIC_InitServer( u32 priority ); // 初期化、及びスレッドを開始
|
||||
|
||||
/*===========================================================================*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* TWL_MIC_SERVER_H_ */
|
||||
263
include/twl/mic/ARM9/twl_mic_api.h
Normal file
263
include/twl/mic/ARM9/twl_mic_api.h
Normal file
@ -0,0 +1,263 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlSDK - library - twl-mic
|
||||
File: twl_mic_api.h
|
||||
|
||||
Copyright 2007 Nintendo. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
Company Ltd., and are protected by Federal copyright law. They may
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Log: $
|
||||
$NoKeywords: $
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef TWL_MIC_MIC_API_H_
|
||||
#define TWL_MIC_MIC_API_H_
|
||||
|
||||
#include <twl/types.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*===========================================================================*/
|
||||
|
||||
// 処理結果定義
|
||||
typedef enum _TWLMICResult
|
||||
{
|
||||
TWL_MIC_RESULT_SUCCESS = 0,
|
||||
TWL_MIC_RESULT_ILLEGAL_PARAMETER,
|
||||
TWL_MIC_RESULT_INVALID_COMMAND,
|
||||
TWL_MIC_RESULT_ILLEGAL_STATUS,
|
||||
TWL_MIC_RESULT_BUSY,
|
||||
TWL_MIC_RESULT_SEND_ERROR,
|
||||
TWL_MIC_RESULT_FATAL_ERROR,
|
||||
TWL_MIC_RESULT_MAX
|
||||
}
|
||||
TWLMICResult;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
TWL_MIC_FREQUENCY_ALL = 0x0, // 47.61 / 32.73 kHz
|
||||
TWL_MIC_FREQUENCY_1_2 = 0x1, // 23.81 / 16.36 kHz
|
||||
TWL_MIC_FREQUENCY_1_3 = 0x2, // 15.87 / 10.91 kHz
|
||||
TWL_MIC_FREQUENCY_1_4 = 0x3, // 11.90 / 8.18 kHz
|
||||
TWL_MIC_FREQUENCY_NUM = 0x4
|
||||
}
|
||||
TwlMicFrequency;
|
||||
|
||||
// コールバック
|
||||
typedef void (*TwlMicCallback)(TWLMICResult result, void* arg);
|
||||
|
||||
// オートサンプリング用設定定義
|
||||
typedef struct TwlMicAutoParam
|
||||
{
|
||||
u32 dmaNo; // DMA No
|
||||
void *buffer; // 結果格納バッファへのポインタ(DMAを使うため4byteアライメント)
|
||||
u32 size; // バッファサイズ(DMAを使うため4byte単位)
|
||||
TwlMicFrequency frequency; // サンプリング頻度
|
||||
BOOL loop_enable; // バッファフル時のループ可否
|
||||
TwlMicCallback full_callback; // バッファフル時のコールバック
|
||||
void* full_arg; // 上記コールバックに指定する引数
|
||||
}
|
||||
TwlMicAutoParam;
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MIC_Init
|
||||
|
||||
Description: MICライブラリを初期化する。
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
void
|
||||
TWL_MIC_Init(void);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MIC_End
|
||||
|
||||
Description: MICライブラリを終了する。
|
||||
|
||||
Arguments: None.
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
void
|
||||
TWL_MIC_End(void);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_DoSamplingAsync
|
||||
|
||||
Description: マイク単発サンプリング開始(非同期版)
|
||||
|
||||
Arguments:
|
||||
|
||||
Returns: TWLMICResult
|
||||
*---------------------------------------------------------------------------*/
|
||||
TWLMICResult
|
||||
TWL_MIC_DoSamplingAsync(u16* buf, TwlMicCallback callback, void* callbackArg);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_DoSampling
|
||||
|
||||
Description: マイク単発サンプリング開始(同期版)
|
||||
|
||||
Arguments:
|
||||
|
||||
Returns: TWLMICResult
|
||||
*---------------------------------------------------------------------------*/
|
||||
TWLMICResult
|
||||
TWL_MIC_DoSampling(u16* buf);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_StartAutoSamplingAsync
|
||||
|
||||
Description: マイク自動サンプリング開始(非同期版)
|
||||
|
||||
Arguments: param
|
||||
|
||||
Returns: TWLMICResult
|
||||
*---------------------------------------------------------------------------*/
|
||||
TWLMICResult
|
||||
TWL_MIC_StartAutoSamplingAsync(TwlMicAutoParam* param, TwlMicCallback callback, void* callbackArg);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_StartAutoSampling
|
||||
|
||||
Description: マイク自動サンプリング開始(同期版)
|
||||
|
||||
Arguments: param
|
||||
|
||||
Returns: TWLMICResult
|
||||
*---------------------------------------------------------------------------*/
|
||||
TWLMICResult
|
||||
TWL_MIC_StartAutoSampling(TwlMicAutoParam* param);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_StopAutoSampling
|
||||
|
||||
Description: マイク自動サンプリング停止(同期版)
|
||||
|
||||
Arguments: param
|
||||
|
||||
Returns: TWLMICResult
|
||||
*---------------------------------------------------------------------------*/
|
||||
TWLMICResult
|
||||
TWL_MIC_StopAutoSampling( void );
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_StopAutoSamplingAsync
|
||||
|
||||
Description: マイク自動サンプリング停止(非同期版)
|
||||
|
||||
Arguments: none
|
||||
|
||||
Returns: TWLMICResult
|
||||
*---------------------------------------------------------------------------*/
|
||||
TWLMICResult
|
||||
TWL_MIC_StopAutoSamplingAsync( TwlMicCallback callback, void* callbackArg );
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_GetLastSamplingAddressAsync
|
||||
|
||||
Description: 最新のサンプリングデータの格納アドレスを返します。
|
||||
但し、アドレスはサンプリング時間を元に算出したものである
|
||||
ため誤差を含んでいます。さらにARM7からARM9へと通知してい
|
||||
る間にサンプリングは進んでいる可能性があります。
|
||||
(非同期版)
|
||||
|
||||
Arguments: adress : アドレス格納ポインタのアドレス
|
||||
callback :
|
||||
callbackArg :
|
||||
|
||||
Returns: TWLMICResult
|
||||
*---------------------------------------------------------------------------*/
|
||||
TWLMICResult
|
||||
TWL_MIC_GetLastSamplingAddressAsync( void** adress, TwlMicCallback callback, void* callbackArg );
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_GetLastSamplingAddress
|
||||
|
||||
Description: 最新のサンプリングデータの格納アドレスを返します。
|
||||
但し、アドレスはサンプリング時間を元に算出したものである
|
||||
ため誤差を含んでいます。さらにARM7からARM9へと通知してい
|
||||
る間にサンプリングは進んでいる可能性があります。
|
||||
(同期版)
|
||||
|
||||
Arguments: adress : アドレス格納ポインタのアドレス
|
||||
|
||||
Returns: TWLMICResult
|
||||
*---------------------------------------------------------------------------*/
|
||||
TWLMICResult
|
||||
TWL_MIC_GetLastSamplingAddress( void** adress );
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_SetAmpGainAsync
|
||||
|
||||
Description: プログラマブルゲインアンプの設定を行います。(非同期版)
|
||||
この関数で設定したゲインはオートゲインコントロールが
|
||||
無効になっているときのみ有効となることに注意してください。
|
||||
|
||||
Arguments: gain : 設定ゲイン(0~119 = 0~59.5dB)
|
||||
callback :
|
||||
callbackArg :
|
||||
|
||||
Returns: TWLMICResult
|
||||
*---------------------------------------------------------------------------*/
|
||||
TWLMICResult
|
||||
TWL_MIC_SetAmpGainAsync( u8 gain, TwlMicCallback callback, void* callbackArg );
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_SetAmpGain
|
||||
|
||||
Description: プログラマブルゲインアンプの設定を行います。(同期版)
|
||||
この関数で設定したゲインはオートゲインコントロールが
|
||||
無効になっているときのみ有効となることに注意してください。
|
||||
|
||||
Arguments: gain : 設定ゲイン(0~119 = 0~59.5dB)
|
||||
|
||||
Returns: TWLMICResult
|
||||
*---------------------------------------------------------------------------*/
|
||||
TWLMICResult
|
||||
TWL_MIC_SetAmpGain( u8 gain );
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_GetAmpGainAsync
|
||||
|
||||
Description: TWLモードのマイクゲイン(PGAB)を取得します。
|
||||
(非同期版)
|
||||
|
||||
Arguments: gain : マイクゲイン値の格納アドレス
|
||||
callback :
|
||||
callbackArg :
|
||||
|
||||
Returns: TWLMICResult
|
||||
*---------------------------------------------------------------------------*/
|
||||
TWLMICResult
|
||||
TWL_MIC_GetAmpGainAsync( u8* gain, TwlMicCallback callback, void* callbackArg );
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: TWL_MIC_GetAmpGain
|
||||
|
||||
Description: TWLモードのマイクゲイン(PGAB)を取得します。
|
||||
(同期版)
|
||||
|
||||
Arguments: gain : マイクゲイン値の格納アドレス
|
||||
|
||||
Returns: TWLMICResult
|
||||
*---------------------------------------------------------------------------*/
|
||||
TWLMICResult
|
||||
TWL_MIC_GetAmpGain( u8* gain );
|
||||
|
||||
/*===========================================================================*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* TWL_MIC_MIC_API_H_ */
|
||||
97
include/twl/mic/common/fifo.h
Normal file
97
include/twl/mic/common/fifo.h
Normal file
@ -0,0 +1,97 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlSDK - mic - include
|
||||
File: fifo.h
|
||||
|
||||
Copyright 2007 Nintendo. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
Company Ltd., and are protected by Federal copyright law. They may
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Log: $
|
||||
$NoKeywords: $
|
||||
*---------------------------------------------------------------------------*/
|
||||
#ifndef TWL_MIC_FIFO_H_
|
||||
#define TWL_MIC_FIFO_H_
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
定数定義
|
||||
*---------------------------------------------------------------------------*/
|
||||
// プロトコル関連定義
|
||||
#define TWL_MIC_PXI_CONTINUOUS_PACKET_MAX 10 // 連続パケットの最大連続回数
|
||||
#define TWL_MIC_PXI_DATA_SIZE_MAX ((TWL_MIC_PXI_CONTINUOUS_PACKET_MAX-1)*3+1) // 最大データ数
|
||||
|
||||
#define TWL_MIC_PXI_START_BIT 0x02000000 // 先頭パケットを意味する
|
||||
#define TWL_MIC_PXI_RESULT_BIT 0x00008000 // PXIの応答を示す
|
||||
|
||||
/* 先頭パケットのみの規則 */
|
||||
#define TWL_MIC_PXI_DATA_NUMS_MASK 0x00ff0000 // データ数領域
|
||||
#define TWL_MIC_PXI_DATA_NUMS_SHIFT 16 // データ数位置
|
||||
#define TWL_MIC_PXI_COMMAND_MASK 0x00007f00 // コマンド格納部分のマスク
|
||||
#define TWL_MIC_PXI_COMMAND_SHIFT 8 // コマンド格納部分の位置
|
||||
#define TWL_MIC_PXI_1ST_DATA_MASK 0x000000ff // 先頭パケットのデータ領域
|
||||
#define TWL_MIC_PXI_1ST_DATA_SHIFT 0 // 先頭パケットのデータ位置
|
||||
|
||||
/* 後続パケットのみの規則 */
|
||||
#define TWL_MIC_PXI_DATA_MASK 0x00ffffff // データ領域
|
||||
#define TWL_MIC_PXI_DATA_SHIFT 0 // データ位置
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*===========================================================================*/
|
||||
|
||||
// PXIコマンド定義
|
||||
typedef enum _TWLMICPxiCommand
|
||||
{
|
||||
TWL_MIC_PXI_COMMAND_ONE_SAMPLING = 0x34, // 単発サンプリング
|
||||
TWL_MIC_PXI_COMMAND_AUTO_START = 0x35, // 自動サンプリングスタート
|
||||
TWL_MIC_PXI_COMMAND_AUTO_STOP = 0x36, // 自動サンプリングストップ
|
||||
TWL_MIC_PXI_COMMAND_GET_LAST_SAMPLING_ADDRESS = 0x37, // 最新サンプリングデータのアドレス取得
|
||||
TWL_MIC_PXI_COMMAND_SET_AMP_GAIN = 0x38, // PGAB設定
|
||||
TWL_MIC_PXI_COMMAND_GET_AMP_GAIN = 0x39, // PGAB取得
|
||||
TWL_MIC_PXI_COMMAND_MIC_BUFFER_FULL = 0x50, // バッファフルの通知
|
||||
TWL_MIC_PXI_COMMAND_UNKNOWN
|
||||
}
|
||||
TWLMICPxiCommand;
|
||||
|
||||
// PXIコマンド付加データサイズ定義
|
||||
typedef enum TWLMICPxiSize
|
||||
{
|
||||
TWL_MIC_PXI_SIZE_ONE_SAMPLING = 0, // 0
|
||||
TWL_MIC_PXI_SIZE_AUTO_START = 11, // dmaNo(u8) buffer(u32) size(u32) frequency(u8) loop_erable(u8)
|
||||
TWL_MIC_PXI_SIZE_AUTO_STOP = 0, // 0
|
||||
TWL_MIC_PXI_SIZE_GET_LAST_SAMPLING_ADDRESS = 0, // 0
|
||||
TWL_MIC_PXI_SIZE_SET_AMP_GAIN = 1, // gain(u8)
|
||||
TWL_MIC_PXI_SIZE_GET_AMP_GAIN = 0, // 0
|
||||
TWL_MIC_PXI_SIZE_UNKNOWN
|
||||
}
|
||||
TWLMICPxiSize;
|
||||
|
||||
// 応答定義
|
||||
typedef enum TWLMICPxiResult
|
||||
{
|
||||
TWL_MIC_PXI_RESULT_SUCCESS = 0, // 処理成功 (void/void*型) // 場合により後続パケットあり
|
||||
TWL_MIC_PXI_RESULT_INVALID_COMMAND, // 不正なPXIコマンド
|
||||
TWL_MIC_PXI_RESULT_INVALID_PARAMETER, // 不正なパラメータ
|
||||
TWL_MIC_PXI_RESULT_ILLEGAL_STATUS, // 状態により処理を実行不能
|
||||
TWL_MIC_PXI_RESULT_BUSY, // 他のリクエストを実行中
|
||||
TWL_MIC_PXI_RESULT_FATAL_ERROR, // その他何らかの原因で処理に失敗
|
||||
TWL_MIC_PXI_RESULT_MAX
|
||||
}
|
||||
TWLMICPxiResult;
|
||||
|
||||
/*===========================================================================*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* TWL_MIC_FIFO_H_ */
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
End of file
|
||||
*---------------------------------------------------------------------------*/
|
||||
Loading…
Reference in New Issue
Block a user