オーディオ入出力 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

Import libraryI2SSlave

上記を 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:

06 Feb 2014

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.

21 May 2014

Please log in to post comments.