■ AVRに EasyMP3 モジュール・キット(VS1011B) を接続 ■


 AVRに、Strawberry Linux製 EasyMP3 モジュール・キット(VS1011B)と、SD/MMCカードを接続し、MP3プレーヤーのテストを行いました。
 BASICコンパイラ、「BASCOM-AVR」のAVR-DOSと、BASIC命令で、簡単にSD/MMCカードのMP3ファイルを再生することができます。

       
 
Strawberry Linux製 EasyMP3 モジュール・キット (VS1011B)

 秋月電子のデコーダ・チップ「VS1011e」も検討しましたが、部品代と基板製作費用+手間を考えると、このキットはお値打ちです。
 
 ただし、搭載されているデコーダ・チップが、旧バージョンの「VS1011B」なので、注意が必要です。
 
※ SCIのコマンド実行中は、DREQが(L)にならないので、プログラムのタイマーで待ち時間を入れる必要があります。 (これで、かなり悩みました)
 
 ネットにて、「VS1011e」チップのデータシートを、日本語訳されている方のページにたどり着き、ようやく解決することができました。
 
VS1011e 日本語データシート


回路の概要
 
1.AVRの選定条件
 
 ・フラッシュ・メモリ 16Kバイト以上。
 ・SRAM 4Kバイト。 (DOS使用2,196バイト+スタック384バイト=2,580バイト)
 ・AVRはATmega644Pを選択し、クロックは19.6608MHzのクリスタルを使用しています。
 ・8MHzでは、256kbps以上のMP3ファイルで、音飛びが発生しました。
 ・19.6608MHzは、手持ちのボーレイト用クリスタルなので、20MHzでも問題ありません。

2.電源電圧とレベル変換
 
 ・EasyMP3 モジュール・キットも、SD/MMCカードも、内部動作電圧は3.3Vですが、どちらも3.3Vの
  レギュレータと、レベル変換回路を搭載しているので、5V電源のみで動作します。

3.カードとのSPI通信
 
 ・SD/MMCカードは、ハードウェアSPI(専用ポート)を使用しています。
 ・EasyMP3 モジュール・キットは、ソフトウェアSPI(通常ポート)を使用しています。

4.LCDキャラクタ表示器
 
 ・秋月電子の、超小型LCDキャラクタディスプレイモジュール(16x2行バックライト・オレンジ) を
  定番の回路構成で使用しています。 [SD1602HUOB(-XA-G-R)]

 
 
プログラムについて
 
 ・AVR用BASICコンパイラ、BASCOM-AVR 製品版を使用しています。
 
 ・下記2つのファイルも、MP3プレーヤー・プログラムと同じ場所に保存して下さい。
 
SD/MMCカードのピン設定プログラム Config_MMC_EasyMP3.bas
AVR-DOSの設定プログラム CONFIG_AVR-DOS_JP.bas

 
 ・プログラムの処理は、MP3ファイルを開いて、ファイルの内容を頭からEasyMP3へ送るだけの
  比較的簡単な処理が中心です。
 
 ・キー操作や、LCD表示の方が、プログラム量が多くなっています。
 
 ・MP3ファイルを転送しながら、キーセンスを同時に行っているため、キーの反応はやや遅く
  なっています。
 
 ・音量調節は、ボリュームがBカーブのため、プログラムで簡易的に自然対数に変換しています。



AVRマイコン ATmega644Pの、ヒューズ ビット書き換え
 
・AVR ATmega644Pのシステム クロックは、工場出荷時に内蔵RC発振器の8MHzで、1/8前置
分周器がONに設定されているので、外部のクリスタルを使用するには、AVRのヒューズ ビットを
書き換える必要があります。
 
・また、JTAGインターフェイスが許可になっているので、無効に書き換えます。

下記ページの書き換え方法 「6.」を、以下の様に変更して、ヒューズ ビットの書き換えを行います。

    ヒューズ ビット書き換え

 6.[ Fusebit C ] の右欄 [ 0:Division by 8 enabled ] をクリックすると、右側にプルダウン
   メニューが現れますから、 [ 1:Division by 8 disabled ] を選択します。
 
   [ Fusebit KLA987 ] の右欄 [ 100010:Int. RC Osc.; Start-up time: 6 CK + 65 ms ] を
   クリックすると、右側にプルダウンメニューが現れますから、
   [ 110111:Full Swing Oscillator; Start-up time: 16K CK + 65 ms; Crystal Osc.;
       slowly rising power
] を選択します。
 
   [ Fusebit High H ] の右欄 [ 0:JTAG enabled[portc.2-portc.5 not usable] ] を
   クリックすると、右側にプルダウンメニューが現れますから、[ 1:JTAG disabled ] を
   選択します。
 

 
回 路 図  GIF版 EsMP3cir.gif (214KB)  PDF版 EsMP3cir.pdf (220KB)

 
注意! この図面を使用した、いかなる損害にも責任を負いません。 

プログラム  テキスト形式 ソースファイル  EsMP3101.txt (19KB)
 BASCOM-AVR用 ソースファイル  EsMP3101.bas (19KB)
 インテルHEX形式 オブジェクトファイル  EsMP3101.HEX (28KB)
 
 注意! 著作権は放棄しておりませんので、販売目的での使用は絶対にしないで下さい。
       (記事の無断転載を除き、個人での使用、改変、自作の掲載、リンクの制限はありません)



 SD/MMCカード 部品面

  SD/MMCカード ハンダ面


操作方法
 
1.電源投入
 
  ・電源投入後、まずSD/MMCカードの存在を確認します。
   (カードが挿入されていない場合は、エラーメッセージを表示し、停止します)
 
  ・次に、カード内のMP3ファイルの総数を検索し、3桁で「Total:XXX」と表示します。
   (MP3ファイルが無い場合は、エラーメッセージを表示し、停止します)
 
  ・エラー発生時は、電源を切ってから、カードを確認して下さい。
 
  ・カード内のMP3ファイルは、ディレクトリの並び順に再生されます。
 
 
 
2.スイッチ操作
 
  ・スイッチは、左から、前曲 ・ 次曲 ・ 再生 ・ 一時停止 ・ 停止 となっています。

  ・再生 − LCDに表示されている、左上の曲番号および2行目のファイル名の曲が再生されます。
         (再生中は、再生時間も表示されます)
 
  ・停止 − 再生を中断し、再生時間表示位置が「STOP」の表示に変わります。
 
  ・一時停止 − 再生中に押されると、再生を一時停止し、再度押されると、再生を再開します。
 
  ・次曲 − 停止中は、次曲の曲番号とファイル名が表示されます。
         再生中は、次曲の最初から再生が始まります。
 
  ・前曲 − 停止中は、前曲の曲番号とファイル名が表示されます。
         再生中は、前曲の最初から再生が始まります。

  ・最後の曲の再生が終わると、最初の曲へリピートします。




   電子工作の部屋 Top へ 前のページへ戻る