オーディオ入出力 I2S TLV320AIC23B
オーディオ入出力 I2S TLV320AIC23B
mbed LPC1768 または LPC4088 Quick Start Board の I2S 機能を使います。
Audio CODEC IC の TLV320AIC23B を使用します。
ステレオ音声の入力・出力ができます。
TLV320AIC23B はI2Sマスター、mbed はI2Sスレーブとして働きます。
音量などICのコントロールはI2Cで行います。
MP3プレーヤーやサンプラーなどを簡単に作ることができます。
blockdiagram
+--------+ +--------+ | |3.3V--+-+-+----DVDD|27 14|AVDD----+---[10uH]---3.3V | | | | +----BVDD|1 8|HPVDD---+ | | R R | | | | | | +------CS|21 | | p9|SDA---+-|-|----SDIN|23 19|RLINEIN---[1uF]---(R) INPUT | p10|SCL-----+-|----SCKL|24 20|LLINEIN---[1uF]---(L) | | +----MODE|22 | | mbed | | | AIC23B |===[Xtal 12MHz] | p6|TX_WS-----|---LRCIN|5 | | p5|TX_SDA----|-----DIN|4 13|RLOT-----[10uF]---(R) OUTPUT | p16|RX_WS-----|--LRCOUT|7 12|LOUT-----[10uF]---(L) | p8|RX_SDA----|----DOUT|6 | | p7|TX_CLK----|----BCLK|3 | | | | | 11|HPGND---+ | |GND-------+----DGND|28 15|AGND----+---[10uH]---GND | | +--------+ +--------+
ライブラリ
http://mbed.org/cookbook/TLV320AIC23B
I2S Slave
上記を LPC4088 に対応させたライブラリ
Import libraryI2SSlave
supported LPC4088 original: http://mbed.org/users/d_worrall/code/I2SSlave/
TLV320AIC23B
Import libraryTLV320
Library for Texas Instruments TLV320AIC23B hi-def audio chip note: requires I2SSlave abstraction library
なぜかこのライブラリは左右の音声出力を入れ替えるようプログラムされている。
気になる場合は以下の部分をコメントアウトする。
TLV320.cpp
void TLV320::format(char length, bool mode){ : // modeSet |= (1 << 5); //swap left and right channels
44.1KHzレートで再生する場合、オーバーサンプリングするようにすれば音質が向上する。
TLV320.cpp
int TLV320::frequency(int hz){ : clockModeChar |= (1 << 1); // BOSR : cmd[1] = (rate << 2) | clockInChar | clockModeChar; //input data into instruciton byte
サンプル
MP3 プレイヤー
SDメモリーのMP3ファイルをデコード・再生するプログラム
Import programi2s_audio_madplayer
streo mp3 player see: http://mbed.org/users/okini3939/notebook/I2S_AUDIO
mp3デコード ライブラリ
Import programmadplayer
MP3 Player without external hardware MP3 Player without external hardware. A software based MP3 player based on a modified version of libmad. Mono output (at the moment) via AnalogOut. Files are read from an USB drive. This is a demo program, it plays only one file at the moment. Documentation is in "main.cpp" and "config.h"
Information
SDメモリーからMP3ファイルを読み込む場合は、SPIの速度を早くしておくこと。(読み出しが間に合わなくなる)
// _spi.frequency(1000000); _spi.frequency(16000000);
サンプラー
録音&再生するプログラム
ステレオ、16bit、44.1kHzサンプリング
拡張メモリ使用。 PRAM 128Mbit なので 95秒くらい録音できる。
Import programi2s_audio_sampler
sample and play see http://mbed.org/users/okini3939/notebook/I2S_TLV320AIC23B/
ボタン左から、停止(p30)、録音(p29)、再生(p28)。
※プログラムは不完全のため、たまにおかしな音が出ます。
エコー
入力された音声にエコーをかけて出力するプログラム
Import programi2s_audio_echo
echo sound see http://mbed.org/users/okini3939/notebook/I2S_TLV320AIC23B/
Geta Audio Codec
Audio Codec 「TLV320AIC23B」を、mbedのオーディオ入出力として使用できる基板です。
CPUとはI2Sインターフェースで接続します。
mbed の下駄のように積み重ねて使用します。
販売:Galileo 7
2 comments on オーディオ入出力 I2S TLV320AIC23B:
Please log in to post comments.
THANK YOU VERY MUCH ! I read a lot the 4088 doc about I2S, but you juste gave me a way to start playing I2S with LPC4088 Board.
Nice job.