ゆるく楽しむプログラミング

MP3ボイスモジュール(JQ8400-FL)

MP3ボイスモジュール

・電源:DC3.3~5V
・MP3チップ:JQ8400-FL
・ファイルシステム:FAT16/FAT32
・オーディオフォーマット:MP3、WAV
・サンプルレート(KHz):8/11.025/12/16/22.05/24/32/44.1/48

UART 通信プロトコル
・全二重シリアル通信プロトコル
・ボーレート 9600、8 ビット データ、パリティなし、1 ストップ ビット


MP3モジュール操作コマンド

開始コード コマンド データ長 データ1 データn チェックサム
0XAA 0x01~0x26        可視コード~データnまでの和の下位1バイト
※n=0の時、データは存在しない。

コマンド 動作
0x01 状況照会 (Status Inquiry)ステータス 00:停止、01:再生中、02:一時停止
0x02 Play : 現在のオーディオの最初から再生
0x03 一時停止 (Pause)
0x04 Stop
0x05 最後の曲 (Last song)
0x06 次の曲 (Next song)
0x07 曲指定 (Specify song)  指定曲番(1 ~ 65535)の曲を再生
0x08 ドライブとディレクトリを指定 (Specify drive and directory)
0x09 現在のドライブの問い合わせ (Specify drive and directory)
0x0A 現在再生中のストレージ(ドライブ番号)の問い合わせ
0x0B 指定したドライブに切り替える
0x0C 音声ファイル総数の問い合わせ
0x0D 現在のファイル番号の問い合わせ
0x0E 最後のディレクトリ : ディレクトリの最初のオーディオを再生
0x0F 次のディレクトリ :ディレクトリの最初のオーディオを再生
0x10 現在の操作を終了。 現在の操作が挿入再生の場合は、元の状態に戻る
0x11 現在のディレクトリ内の最初のオーディオの序数を返す
0x12 ディレクトリ内のオーディオ総数の問い合わせ
0x13 ボリュームコントロール
0x14 音量を1段階上げる
0x15 音量を 1 段階下げる
0x16 挿入プレイ:指定された再生が終了すると、前のブレーク ポイントに戻って再生
0x17 再生ディレクトリの指定
0x18 ループバックモードを設定
0x19 ループの繰り返し回数を設定
0x1A EQ設定
0x1B 複合再生:ファイル名を使用した結合再生は、より便利で正確
0x1C 結合再生の停止
0x1D チャネルの設定
0x1E 短いファイル名の問い合わせ
0x1F オーディオを選択するが、再生はしない
0x20 繰り返し読み制御
0x21 繰り返し読みを止める
0x22 早戻しの期間(秒)を指定する
0x23 早送りの時間(秒)を指定する
0x24 現在のオーディオの長さ(時間)の問い合わせ
0x25 再生時間をオンにする
0x26 再生時間の停止

ArduinoUNOとの接続


シリアルポートの TTL レベルは 3.3V
5V MCU と接続する場合は、1K オームの抵抗を使用
BUSY信号も3.3VなのでArduinoUNOで使用する場合にはアナログ入力でBUSYを判定

ショートファイル名の取得/トラック番号との対応付け

指定曲番(トラック番号)はフラッシュメモリーにコピーした順番(コピーシーケンス)になります。
ファイル名は一切関係ないので使いにくい事この上ありません。
指定曲番(トラック番号)のショートファイル名(半角英大文字+数字の8文字+拡張子3文字)のファイル名を取得できるので
指定曲番(トラック番号)とショートファイル名の対応を取る事は出来ます。


ソースコード

MP3-PlayAll    : 全ての音声ファイルを順番に再生
MP3-FileName : 音声ファイルのショートファイ名を取得
MP3-PlayOne  : ショートファイル名を指定して1局だけ再生
以上の スケッチを公開しています。

YuruPuro/MSP2807

解説動画