LPC4088 MP3 Player

LPC4088 MP3 プレイヤー

You can change fwd/rev speed and skip.

LPC4088 Quick Start Board の豊富なメモリー容量を活用して、MP3デコードしたデータをメモリーに保持し、倍速再生・逆再生・スキップなどができる MP3プレイヤーを作る。

Hardware - ハードウェア

サウンド出力(DAコンバーター)には I2S Audio Codec の TLV320AIC23B を使用します。

I2C Audio Codecがなければ、CPUの AnalogOut へ出力するよう変更してみてください。 (元の madplayer はそうなっていますので、そちらを参考に)

blockdiagram

    +--------+                   +--------+
    |        |3.3V--+-+-+----DVDD|27    14|AVDD----+---[10uH]---3.3V
    |        |      | | +----BVDD|1      8|HPVDD---+
    |        |      R R          |        |
    |        |      | | +------CS|21      |
    |     p32|SDA---+-|-|----SDIN|23    19|RLINEIN---[1uF]---(R) INPUT
    |     p31|SCL-----+-|----SCKL|24    20|LLINEIN---[1uF]---(L)
    |        |          +----MODE|22      |
    |  mbed  |          |        | AIC23B |===[Xtal 12MHz]
    |     p12|TX_WS-----|---LRCIN|5       |
    |     p12|TX_SDA----|-----DIN|4     13|RLOT-----[10uF]---(R) OUTPUT
    |     p16|RX_WS-----|--LRCOUT|7     12|LOUT-----[10uF]---(L) 
    |     p14|RX_SDA----|----DOUT|6       |
    |     p13|TX_CLK----|----BCLK|3       |
    |        |          |        |      11|HPGND---+
    |LPC4088 |GND-------+----DGND|28    15|AGND----+---[10uH]---GND
    |        |                   +--------+
    |        |
    |      p5|MOSI---------------|
    |      p6|MISO---------------| SD memory card
    |      p7|SCK----------------|
    |      p8|CS-----------------|
    +--------+

Software - プログラム

突貫工事で作ったのでコードが汚いです。ごめりんこ。

Import programmadplayer_lpc4088

MP3 Player. You can change fwd/rev speed and skip. see: http://mbed.org/users/okini3939/notebook/lpc4088_madplayer/

使用ライブラリ

ソフトウェアMP3デコードには madplayer を利用。

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"

Import libraryI2SSlave

Import libraryTLV320

Library for Texas Instruments TLV320AIC23B hi-def audio chip note: requires I2SSlave abstraction library

Usage - 操作方法

PCシリアルからコマンドを打ち込んで操作します。

Command動作
Pファイル名Play再生
SStop停止
T数値Speed再生速度(-10~10倍)
Q数値Skipスキップ(-n~+n秒、符号を付けなければファイル先頭からの位置)

Serial

    Pfilename.mp3

    Q+5
    Q2

    T-1

    S

Note - メモ

MP3ファイルをデコードし、メモリー(リングバッファ)へ保存しながら再生します。

デコード処理が終わってないところへはスキップできません。 また、再生が進んでリングバッファから消えてしまったところへもスキップできません。

あらかじめデコードされるメモリー量は次のところで定義されています。

player.h

#define FWDBUF 10 // sec

残りは、逆再生用のリングバッファとなります。

32MB / (44.1Ksps * 2byte(16bit) * 2ch) = 180s

約3分の音楽データを保持できる計算になります。


Please log in to post comments.