* @file uzume.c
* @brief CODECの初期化と制御
*/
-#include "t_services.h"
-#include "s_services.h"
+#include "i2s_subsystem.h"
+#include <s_services.h>
#include "uzume.h"
#include "kernel_id.h"
-#include <i2c_subsystem.h>
-/**
- * \brief コーデック初期化データ列の長さ
- * \details
- * TLV320AIC23に与える初期化データの長さである。長さはレジスタアドレスとデータの組が
- * 何組であるかを示す。
- */
-#define CODECINITDATALEN 11 /* TLV320AIC23B初期化データ長 */
+#include <cdefBF592-A.h>
-#define I2C_PORT 0
-#define CODEC_ADDRESS 0x1A
-
-/**
- * \brief CODEC初期化データ列
- * \details
- * TLV320AIC23Bを初期化するためのデータ列である。
- */
-static unsigned char tlv320aic23init[CODECINITDATALEN][2] =
-{
- { 30 | 0x00, 0x00 }, /* RESET. */
- { 0 | 0x01, 0x17 }, /* L_in vol : LR simul-update, unmute, 0dB */
- { 2 | 0x01, 0x17 }, /* R_in vol : LR simul-update, unmute, 0dB */
- { 4 | 0x01, 0xF9 }, /* L_HP vol : LR simul-update, zero-cross, 0dB */
- { 6 | 0x01, 0xF9 }, /* R_HP vol : LR simul-update, zero-cross, 0dB */
- { 8 | 0x00, 0x12 }, /* Analog Audio Path : No Sidetone, No bypass, DAC for Out, Line out for ADC, Mic Mute */
- { 10 | 0x00, 0x00 }, /* Digital Path: DAC unmute, De-emphasis 48k, ADC HPF enable */
- { 12 | 0x00, 0x02 }, /* Power Down : Only Mic is down*/
- { 14 | 0x00, 0x4E }, /* Digital Audio Format : Master, 32bit, I2S */
- { 16 | 0x00, 0x01 }, /* Sanmpling Rate, 48kHz, USB mode*/
-// { 16 | 0x00, 0x00 }, /* Sanmpling Rate, 48kHz, NORMAL mode*/
- { 18 | 0x00, 0x01 } /* Activateion : Active. */
-
-};
+// CODECのスロット番号
+#define ADC_L0 0
+#define ADC_R0 1
+#define DAC_L0 0
+#define DAC_R0 1
/**
* @brief DMAデスクリプタ型
* 左右チャンネルそれぞれに配列を与える。配列内部にはサンプル順にデータが並ぶ。
* ステレオは2系統あるので左チャンネルも2系統分のデータがある。
*/
-static int leftIn[UZUME_BLOCKSIZE];
+static AUDIOSAMPLE leftIn[UZUME_BLOCKSIZE];
/**
* @brief 右入力データ引渡し変数
*
* 左右チャンネルそれぞれに配列を与える。配列内部にはサンプル順にデータが並ぶ。
* ステレオは2系統あるので右チャンネルも2系統分のデータがある。
*/
-static int rightIn[UZUME_BLOCKSIZE];
+static AUDIOSAMPLE rightIn[UZUME_BLOCKSIZE];
/**
* @brief 左出力データ引渡し変数
*
* @ref codec_callback()関数から出力オーディオデータをうけとるための引数。
* 左右チャンネルそれぞれに配列を与える。配列内部にはサンプル順にデータが並ぶ。
*/
-static int leftOut[UZUME_BLOCKSIZE];
+static AUDIOSAMPLE leftOut[UZUME_BLOCKSIZE];
/**
* @brief 右出力データ引渡し変数
*
* @ref codec_callback()関数から出力オーディオデータをうけとるための引数。
* 左右チャンネルそれぞれに配列を与える。配列内部にはサンプル順にデータが並ぶ。
*/
-static int rightOut[UZUME_BLOCKSIZE];
-
-/**
- * @brief コーデックの初期化
- * @details
- * TLV32AIC23Bに初期化数値列をI2C経由で送り込む。タスクコンテキストで呼び出さなければならない。
- * 初期化後、TLV32AIC23Bはクロック信号を生成して動作を開始する。
- */
-void init_codec()
-{
- int i;
-
-
- /* TLV320AIC23Bに初期化データを送信する */
- for ( i=0; i< CODECINITDATALEN; i++){
- i2c_master_write( I2C_PORT, CODEC_ADDRESS, tlv320aic23init[i], 2 );
- }
-}
-
-
+static AUDIOSAMPLE rightOut[UZUME_BLOCKSIZE];
/**
* @brief CODEC用SPORTを設定する