dポイントプレゼントキャンペーン実施中!

<ハード構成>
・CPU:PIC24FJ64GA002
・デコーダIC:VS1011e
・SDカードからWAVファイル中のデータを、読出し
そのデータをSPIインターフェースにて、VS1011eに転送
 (転送クロック(SCLK)は、4MHzに設定しています。)

<WAVファイル:SIN1K.WAVの記録仕様>
・1536kbps, 16bit, ステレオ, 48kサンプル, PCM
ファイルサイズ:576kB, 再生時間:3.0秒

上記に示す構成で、1kHzサイン波のWAVファイルの再生を
試みていますが、再生音が断続的かつノイジーで、
本来の再生時間は、3.0秒のはずが、7秒位かかってしまいます。

また、VS1011e内蔵のサイン・テスト・モードを5kHzに設定して
動かすと、ヘッドフォン出力に5kHzの綺麗なサイン波が出力され
ピー音が鳴っています。

今迄この他に試した結果は次の通リです。
(1) SCI(コマンド転送)は、ライト/リードともに問題ないことを
   確認しています。(BASS及び、VOLUME設定値をSCIで書込んだ
   後、SCI_BASS, SCI_VOLレジスタを読込むと期待通リの値が読める。)

(2) SDI(データ転送)は、WAVヘッダ情報の、ライト/リードに関しては
   問題ないことを確認しています。
  (デコード中に、SCI_AUDATA, SCI_HDAT0, SCI_HDAT1レジスタを
  読込むと、それぞれ期待通りの値(AUDATA=0xBB81(48001),
HDAT0=0x7761, HDAT1=0x7665)が読める。)

(3) VS1011eが破損しているのではと思い新品に交換しましたが
   症状は同じです。

私の推定ですが、WAVヘッダは正常にSPI転送できているのに、再生音
がおかしくなるのは、PCMデータ部になると、SCLKとSIの同期が微妙にずれて
くるのではないかと考えておりますが、何せ高速オシロが無いのでその辺の
検証は出来ません。(フリーのソフトオシロ2で、SCLKを極端に低速にして
SIとのタイミングを見るとちゃんと立ち上がりに同期しているように見えます。
なんとか、オシロ以外でVS1011e側でのPCMデータを見る方法はないのでしょうか?)

以上のような状況なのですが、
同じような現象に遭遇された方がいらっしゃいましたら
ご一報いただければ幸いに存じます。









 

A 回答 (3件)

使用マイコンのリビジョンを確認したところ3043でした。



参考のサイトの方は3043ではMP3ファイルを再生出来ない。
当方はMP3は再生できるがWAVファイルは再生出来ない。
ロット違い等によってもバグが違うのかもしれません。

そんなことがあるのかは疑問ですが...
お手あげです。

ピン配置の同じマイコンへ変更を検討されたらいかがでしょうか。
24HJ12GPへの移植が可能で容易なら助かります。

この回答への補足

CPUを変更しての実験はしてませんが自分なりに原因を調査し、
全てではないですが解明しましたので今までの問題点と原因等を
以下の通りまとめてみました。
1. 問題点と、その原因、対策を解明した順に列記
 (1) 問題点1: SIN_TESTとWAV再生で、時々音が鳴らない
    原因: PIC24Fの、SPIタイミングがきわどい為の誤動作
       SCLKのSIに対するセットアップ時間が規格上
       ギリギリ
      (VS側の要求-26nSminに対し、PIC側の
       SCLKの立上がりからSDOデータ出力有効までの
       時間規格は、30nSmaxなので要求を満たさない)
    対策: SCLKラインに22pFのコンデンサを入れSIに対し
       SCLKエッジの位置を遅らせた
       Cだけだと波形が鈍るだけなので、安定化のため
       波形整形も兼ねHC4050のバッファICを挿入
       尚、他のSPI信号(SO,SI)にもタイミングバランスを
取る為、バッファICを挿入する
      (Cだけでも動くことは動く)

 (2) 問題点2:SCLK=4MHzでは、WAV, MP3ともに再生時間が
        合わない
        具体的には、WAVは再生時間が長くなり、逆に
        MP3は短くなって早送りのような音になる
       (WAVに関しては、SCLKをIMHzまで下げると
        再生時間があうようになり再生音も正常になるが
        MP3はさらに166kHzまで下げないと再生時間が
        合わず 突発ノイズがひどく実用にならない
    原因: 回路図CADの、新規シンボル作成時、VS1011eの
        シンボルに32pinのTESTpinが抜けていたことに気
        が付かず、配線もしておらずTESTpinがオープン
        になっていたため外部ノイズでこの端子に割り込み
        が入り突発ノイズが発生していた模様
        またTESTピンがオープン時に
        VS1011eの初期設定が終了した後、DREQをテスター
        で測定すると1.48V(また周波数レンジでは何故か
        6.14MHzを示す)しかなくDREQが正しく出力されて
        なかったせいでDREQの状態を正しく判断できず
        PICからのデータ転送タイミングがずれていたため
        再生時間が合わなかったと考えられる
    対策: VS1011eのマニュアルに従いTESTピンをDVDDに
        接続した
        その結果
        (1) SPI転送速度4MHzで、MP3ファイルが再生できた
        (2) SPI転送速度4MHzで、WAVファイルが再生できた(16bit*2*48k除く)
       (3) アイドル時の、DREQのレベルが正常に3.23Vまで上がった

 (3) 問題点3:アイドル時のノイズが多い
    原因: DGNDと、AGNDの配線に問題(両者分離されておらず
         結果1点接続になっていなかった)
    対策: 配線引回しを修正しデバイス直近で1点接続
        その結果アイドル時のノイズは殆ど気にならないほど
        減少した

 (4) 問題点4:16bit, ステレオ, 48kサンプルのようにデータ量の
        多いWAVファイル再生が断続的になる
    原因: ビットレートが増えるほど、1cycle当りのバイト数が
       増えるのでPIC側のBufferサイズ:256Byteの容量で
       1度に転送できる1kサイン波のサイクル数が減少する
       ためにVS1011e側への新規データの転送が間に合わ
       なくなって途切れが発生すると思われる
       試しに、現在のハード+ファームで再生できるWAV
       ファイルの限界ビットレートはいったいどの位なのか
       様々なビットレートの1kHzを発生するWAVファイルを作り実験してみた
        → 結果、限界は512Kbps(8bit,ステレオ,32k)であった
    対策: 直列処理でなくダブルバッファ等による並列処理を検討する
        例えばバックグランドでSDリードしフォアグランドでSPI転送
        するイメージを考えているが次期テーマにしようと思っ

補足日時:2011/03/06 21:01
    • good
    • 0
この回答へのお礼

3回目のご回答ありがとうございます。

私も紹介した例の記事には、矛盾があり半信半疑です。
試せるのであればと思ったのですが...

teretou3さんの言うように、ピン配置の同じマイコンが
あるようなら、移植して試すというのも1つの手段かなとも
思います。

お礼日時:2011/02/21 20:40

列記された状態での当方の症状です。



(1) WAVファイルの再生時間が本来より長く・・・
(2) 問題のWAVファイル:16bit, ステレオ, 48kサンプルは・・・

<当方> CD-DAフォーマットしかテストをしていませんが、SCLKを125kHzから4MHzまで設定しても楽音再生はできず(音は鳴るが再生時間が冗長)。

(3) MP3ファイルは再生できません。・・・

<当方> MP3ファイルの楽音再生はSCLKが4MHzでは出来ず。
2MHz以下250kHz以上ではノイズや途切れは発生せず、再生速度も耳による確認ですが、他の再生機と遜色は無しです。
    • good
    • 0
この回答へのお礼

2回目のご回答ありがとうございます。

MP3ファイルは問題なく再生できているんですね。

当方は肝心のMP3ファイルの再生ができません。
2Mでも250Kでも駄目で前にも書きましたが
166kHzまで下げると突発ノイズが激しいですが
楽音が姿を現します。

再生できているWAVファイルをWAV→MP3変換ソフトで
ビットレートの指定をいろいろ変えながらMP3ファイル
に変換し試してみましたが変換後のどのファイル
再生でも状況は変わりませんでした。

またWEBサイトの電子工作プログなど検索してみると
PIC24FJ64GA002のバージョンによってSPIのバグが
あり旧バージョン(2008年版)だと問題ないのに
新バージョン(2009年以降)だとこの手の問題が
発生する旨の記事がありましたが旧バージョンのPICは
持ち合わせしていないしロット指定の注文も出来ない
といわれ試してはいませんが...
尚、参照先のURLは以下です
http://sfukuda.at.webry.info/201008/article_14.h …

お礼日時:2011/02/20 20:30

 同じCPUとデコーダICでプレーヤを作製した者です。


同じ症状がでました。WAVファイルのヘッダ情報は読書きできるが再生は不可。
MP3ファイルは再生できます。

自分なりに調べましたが原因は分かりませんでした。
私も原因を教えていただきたいです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

同じ症状が出た件、了解しました。

質問を投稿した後も、自分なりに調べましたが未だに原因は不明です。
ただ次のことが新たに判ったので列記しておきます。


(1) WAVファイルの再生時間が本来より長くなってしまうのは、SCLK
  周波数が高かったのが原因していたようです。
  (4MHzを1MHzに落したらOKになった。)
(2) 問題のWAVファイル:16bit, ステレオ, 48kサンプルは再生不可
  ですが、以下のフォーマットのWAVファイルは再生できます。
  ・8bit, モノラル, 44.1kサンプル(時々波形崩れ確認)
  ・8bit, モノラル, 48kサンプル(時々波形崩れ確認)
  ・16bit, モノラル, 22kサンプル(楽音再生)
  ・8it, ステレオ, 22kサンプル(楽音再生)
(3) MP3ファイルは再生できません。
  ただし、SCLKを4MHzから166kHzまで下げると、それまで早送りの
  ように聞こえていた楽音が正しい再生時間になり楽音として判別
  できるようになりますが、突発ノイズや途切れが発生しとても実用
  にならない状態です。

以上の通り現在も上手く行ってませんが、何かお気付の点があったら
教えていただきたいです。

最後に返事が送れて大変申し訳なかったです。

お礼日時:2011/02/17 10:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!