<ハード構成>
・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件)
- 最新から表示
- 回答順に表示
No.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転送
するイメージを考えているが次期テーマにしようと思っ
3回目のご回答ありがとうございます。
私も紹介した例の記事には、矛盾があり半信半疑です。
試せるのであればと思ったのですが...
teretou3さんの言うように、ピン配置の同じマイコンが
あるようなら、移植して試すというのも1つの手段かなとも
思います。
No.2
- 回答日時:
列記された状態での当方の症状です。
(1) WAVファイルの再生時間が本来より長く・・・
(2) 問題のWAVファイル:16bit, ステレオ, 48kサンプルは・・・
<当方> CD-DAフォーマットしかテストをしていませんが、SCLKを125kHzから4MHzまで設定しても楽音再生はできず(音は鳴るが再生時間が冗長)。
(3) MP3ファイルは再生できません。・・・
<当方> MP3ファイルの楽音再生はSCLKが4MHzでは出来ず。
2MHz以下250kHz以上ではノイズや途切れは発生せず、再生速度も耳による確認ですが、他の再生機と遜色は無しです。
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 …
No.1
- 回答日時:
同じCPUとデコーダICでプレーヤを作製した者です。
同じ症状がでました。WAVファイルのヘッダ情報は読書きできるが再生は不可。
MP3ファイルは再生できます。
自分なりに調べましたが原因は分かりませんでした。
私も原因を教えていただきたいです。
ご回答ありがとうございました。
同じ症状が出た件、了解しました。
質問を投稿した後も、自分なりに調べましたが未だに原因は不明です。
ただ次のことが新たに判ったので列記しておきます。
(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まで下げると、それまで早送りの
ように聞こえていた楽音が正しい再生時間になり楽音として判別
できるようになりますが、突発ノイズや途切れが発生しとても実用
にならない状態です。
以上の通り現在も上手く行ってませんが、何かお気付の点があったら
教えていただきたいです。
最後に返事が送れて大変申し訳なかったです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダに動画の再生時間の列...
-
DVD-RAM → PCへの移動
-
DVD_RTAVを見るにはどうしたら...
-
動画再生アプリのVLCのコマンド...
-
外付けHDDからだと、動画が再生...
-
DVDについて
-
DVDのセッションを閉じる
-
オーディオCD挿入時に自動再生...
-
動画の再生とエンコードができない
-
Lumix の 動画の再生できない...
-
DVDの使い方
-
DMMでダウンロードしたWMVファ...
-
ビデオで撮影した動画(CED形式...
-
REAPERでredzoneのmidiを入れた...
-
デジタルビデオカメラのデータ...
-
GOMプレイヤーが真っ黒で再生さ...
-
.dllファイル編集について
-
OS=Windows10.エクスプローラ...
-
ドライブレコーダーの記録を見...
-
DVDに動画と写真両方のデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダに動画の再生時間の列...
-
DVD-RAM → PCへの移動
-
DVD_RTAVを見るにはどうしたら...
-
外付けHDDからだと、動画が再生...
-
mkvファイルの音声トラックの再...
-
MP3プレイヤーの 音飛びの原因...
-
VIDEO_TSファイルを焼いてもDVD...
-
DVDのセッションを閉じる
-
Windowsメディアプレイヤーのバ...
-
MP3対応カーオーディオでの再...
-
EDIUSで作成したaviファイル...
-
動画再生アプリのVLCのコマンド...
-
ActiveMovie windowでの再生
-
.bkdファイル(中身:静止画or...
-
DATファイルを再生したい
-
動画ファイルのファイル名の付...
-
jpegファイルの書き込み
-
ネットワークがビジー状態
-
VLCメディアプレイヤーで
-
メディアプレイヤーで動画が最...
おすすめ情報