| ソフトウェアデコード式 I2S出力型 PIC32MZ MP3 プレーヤ |
|||||||
| 2019.02.03 PIC情報交換会資料 | |||||||
| YS電子工作デザイン http://www.ys-labo.com/ 斎藤 | |||||||
| YS電子工作ショップ http://ys-labo.shop-pro.jp/ | |||||||
| 1. | MP3プレーヤ概要 | ||||||
| ・CPU: PIC32MZ2048EFH100 システムクロック200MHz ・演奏可能ファイルフォーマット: MP3、WAV ・MP3デコード方式: Harmony用 MP3 デコーダーライブラリ使用 ・DAコンバータ: I2Cインターフェース
・押しボタンスイッチ x2: プレー/一時停止用、演奏曲スキップ用 ・表示機能: 演奏中のファイル名を表示( by キャラクタ液晶 SC1602 16文字x 2行) ・開発環境: Harmony ver.2.06 XC32 ver2.10 MPLABX ver4.20 ・設計方針: MP3ファイル再生をテーマとした、シンプルなPIC32MZ評価ボード用サンプルソフトとする。 |
|||||||
| 2. | 回路図(→PDFファイル) | ||||||
| 3. |
|
||||||
| 4. | 動作結果 | ||||||
| → YouTube 動画 | |||||||
| 5. | プログラム | ||||||
| ・ハーモニーサンプルプログラムのuniversal_audio_decoders(PIC32MX470用、DAC:AK4384、 オーディオプロトコル:右詰め、グラフィック付)を参考に作成 |
|||||||
| ・プログラム概略 ➀ダブルバッファ使用 |
|||||||
| ➁USBメモリ内のファイルをオープン後、512バイトバッファにデータを読み込み | |||||||
| ③バッファ内のMP3の512バイトを一括でWAV形式に変換してDMA用バッファに保存 | |||||||
| ④DMA用バッファからサウンドデータサイズ(2バイト)毎にI2Sモジュールのバッファに書き込み 書き込みタイミング: 再生サンプリング周波数(I2Sボーレート、タイマ2の割り込みを使用) |
|||||||
| ⑤I2Sモジュールが LRCLK、SDATA、BCLK端子に所要の信号を出力 | |||||||
| ・プロジェクトファイル → ダウンロード | |||||||
| 6. | Harmony用 MP3 デコーダーライブラリ | ||||||
| ・マイクロチップダイレクトでダウンロード販売されている。 価格:197ドル 名称/パーツNo: SW320022-1HPM - PIC32 Compact MP3 Decoder Library for Harmony |
|||||||
| ・Harmonyにプラグインして使用する。 | |||||||
| ・同様品: WMA Decoder Library(199ドル)、AAC Decoder Library(197ドル) | |||||||
| 7. | I2Sについて | ||||||
| ■ I2Sとは デジタル音声データをシリアル転送するための規格で、3本の信号線(LRCLK、BCLK、SDATA)から 構成される。ICによっては、この3信号と同期するMCLKの供給が必要になることがある。 |
|||||||
![]() |
|||||||
| ■ データ波形 | |||||||
|
|||||||
|
|||||||
| ■ MCLK ・DACでの用途: MCLK はインタポ-レーション(補間)フィルタとΔΣDA変換器に使用されます |
|||||||
| ・入力パルス条件: | |||||||
| ➀ データパルスと同位相ではなくてもよいが、同一タイミングであること | |||||||
| ➁ サンプリング周波数の特定整数倍のクロック (注)高い周波数のMCLKを入力するほうがノイズの少ない良いサウンドが聴ける |
![]() |
||||||
| ③ 上記表に基づくクロックでなくとも入力クロックをもとに 自動的に適切なシステムクロック周波数を選択できる。 (PCM5102、AK4384) | |||||||