ソフトウェアデコード式 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インターフェース
            ■ I2Sインターフェス型DAC PCM5102A(Texas Instruments  SOP 20pin)
   ■ I2Sインターフェス型DAC MAX98357A(Maxim Integrated QFN 16pin) 
 ・再生用オーディオファイル保存方式: USBメモリ(MSDクラス)
 ・押しボタンスイッチ 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の供給が必要になることがある。
   
   
  ■ データ波形
 
 <測定条件>
  オーディオデータ再生中
  再生サンプリング周波数:44.1 KHz
  2v/div、 5μsec/div

 <波形>>
  ・上段: LRCLK
  ・下段: SDATA 
 
 <I2S データフォーマット>
   
  ■ MCLK
  ・DACでの用途: MCLK はインタポ-レーション(補間)フィルタとΔΣDA変換器に使用されます
    ・入力パルス条件:
    ➀ データパルスと同位相ではなくてもよいが、同一タイミングであること
  ➁ サンプリング周波数の特定整数倍のクロック
 (注)高い周波数のMCLKを入力するほうがノイズの少ない良いサウンドが聴ける
    ③ 上記表に基づくクロックでなくとも入力クロックをもとに 自動的に適切なシステムクロック周波数を選択できる。 (PCM5102、AK4384)