VS1001Kの使い方                                                         kunioのHPへ戻る

 MP3デコーダチップVS1001Kの基本的な使い方について説明します。
  参考資料:
VLSIのデータシート 
  注意:私が実際に用いた方法に基づいて説明しますが、完全なものかどうかわかりません。
      また、VLSIのデータシートにも一部誤りがあると思われ、勝手に解釈
しているところもあります。

仕 様
 対応フォーマット MPEG 1& 2 Layer-3, Layer-3の2.5拡張、VBR対応全てのサンプルレート、ビットレートに対応(clkによる)
 動作電圧 AVDD 2.5-3.6V、DVDD 2.3-3.6V 
 動作周波数 動作クロック(xtal):12〜13、24〜26MHz、信号(clk):〜26MHz
 DAC ハイクォリティーステレオ内蔵、ヘッドホーン駆動可能(max30Ω)
 消費電流 max 40-50mA

インターフェイス (SOIC-28で説明)
画像をダウンロードするには、ここを右クリックします。プライバシー保護を促進するため、この画像はインターネットから自動的にダウンロードされません。

端子名

用途

 説      明

 DREQ

出力

 データバッファに空き 有:H、無:L
 DCLK

入力 

 シリアル入力バスクロック、データ(SDATA)に使用
 SDATA  入力  シリアルデータの入力
 BSYNC  入力  バイト同期信号
 SO

出力

 シリアル出力
 SI  入力  シリアル入力
 SCLK  入力  シリアルバスクロック、SI・SOに使用
 XCS  入力  チップセレクト(選択) 非選択:H 選択:L
 RIGHT

出力

 右音声出力
 LEFT

出力

 左音声出力
 RCAP  入力  リファレンス電圧、フィルターコンデンサ(0.1uF)接続
 XRESET  入力  リセット H:平常、L:リセット
 TEST0  入力  テスト、DVDDに接続
 TEST1

出力

 テスト、非接続
 TEST2  出力  テスト、非接続
 XTALO  クロック  クリスタル接続(出力)
 XTALI  クロック  クリスタル接続(入力)
 DVDDx  電源  デジタル回路電源
 DGNDx  電源  デジタル回路グランド
 AVDDx  電源  アナログ回路電源
 AGNDx  電源  アナログ回路グランド

コマンド
 チップ選択信号XCSを’L’にして、SCKのクロックにより次のフォーマットでデータの送受信を行う。
  フォーマット  命令1バイト+アドレス(SCIレジスタ)1バイト+data2バイト(H:L)
           
   
書込(送信)  命令 02h
画像をダウンロードするには、ここを右クリックします。プライバシー保護を促進するため、この画像はインターネットから自動的にダウンロードされません。

読込(受信)   命令 03h
画像をダウンロードするには、ここを右クリックします。プライバシー保護を促進するため、この画像はインターネットから自動的にダウンロードされません。

アドレス(SCIレジスタ) (最低限必要と思われるもの
 名 称  アドレス

読/書

 説   明

 MODE

00h 

読/書

 モード設定
 dataのビットの意味 初期値はすべて’0’

bit

 内   容

1 

 0  左チャンネル位相       ノーマル  反転

 早送りモード       ノーマル  早送り

 ソフトリセット          ノーマル

リセット 

 不使用   常に0 

 パワーダウン          ノーマル

オン

 不使用    常に0

 不使用    常に0

 ラウドネス(低高音強調)   ノーマル   オン

 DCLKのデータ採取タイミング  立上り  立下り

 SDATAシリアル伝送の先頭ビット  MSB  LSB

10

 バスモード     スレーブ  マスター

11 

 マスターモード時バスクロック(kHz)  512  1024
 15-12ビットは不使用常に0
 CLOCKF

03h

読/書

 クロックの設定、クリスタル周波数の補正
    XTALに接続する、クリスタルの標準は24.576MHzでありこの場合は不要であるが
  それ以外の周波数のクリスタルを接続する場合、周波数に応じて補正をこれにより
  行う。 MSBは、動作速度を2倍にする。(12-13MHz時)
 設定例
      26MHz  26000000/2000= 13000 → 32C8h
  12.288MHz  12288000/2000= 6144   → 1800h+8000h(MSB)= 9800h
 DECODE  
 TIME

04h

  読

 デコード(演奏)時間の取得(秒単位) 
 VOL

0bh

読/書

 ボリュームの設定  設定値は0.5db単位のアッテネータ値であり、音量は0が最大、FEhが
  最小、FFhはアンプ電源off、左右のチャンネルそれぞれ設定

SDI送信 (SDIにデータを送信)
 1バイト毎、DREQが’H'であることを確認する。 
 BSYNCを図のように’H’にする。(1〜7ビット幅)
 それに合わせ、DCLKによりSDATAにデータを送信する。
 
画像をダウンロードするには、ここを右クリックします。プライバシー保護を促進するため、この画像はインターネットから自動的にダウンロードされません。

演奏手順
@ハードウェアリセット解除(起動時のみ)
 XRESETを’H’にして、1ms以上待つ

ADREQが’H’になるのを待つ

Bソフトウェアリセット 
  02h(書込)+00h(モード設定)+0004h(bit2on) 設定 

  5us以上待つ
  02h(書込)+00h(モード設定)+0000h 解除 

CDREQが’H’になるのを待つ

Dクッロク速度設定 12.288MHzの場合(上表参照)
 02h(書込)+03h(クロック設定)+9800h

Eボリューム設定  初期値40hぐらいが適当
 02h(書込)+0bh(ボリューム設定)+4040h(左/右)

FMP3データSDI送信 

G2048バイト’0’をSDI送信

H次曲演奏 Aへ戻る

演奏時間読出
 前述Fのデコード(演奏)時間を得る。
 03h(読出)+04h(デコード時間)+WXYZh(SOでデータ取得)  

 処理したデコード時間のため、曲の途中から始めた場合はそこまで時間を足さないと曲全体の時間と合わない。

SINテスト
 
テスト信号としてSIN信号が用意されている。
 ビープ音として利用できる。

 8バイトのデータをSDI送信する。
 例
  53h,EFh,6Eh,31h,0,0,0,0 1500Hz
  53h,EFh,6Eh,35h,0,0,0,0  500Hz
  45h,78h,69h,74h,0,0,0,0  停止