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 libraryTLV320
Library for Texas Instruments TLV320AIC23B hi-def audio chip note: requires I2SSlave abstraction library
Usage - 操作方法
PCシリアルからコマンドを打ち込んで操作します。
Command | 動作 | |
---|---|---|
Pファイル名 | Play | 再生 |
S | Stop | 停止 |
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.