![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
<ハード構成>
・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で質問しましょう!
似たような質問が見つかりました
- ダイヤルアップ Raspberry Piでアナログモデム経由で音声再生 1 2022/05/20 18:01
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- 画像編集・動画編集・音楽編集 動画をディスク作成すると画像が乱れる。 4 2022/06/24 07:49
- その他(AV機器・カメラ) AmazonミューシックHDのハイレゾ曲をflac拡張子で、SDカードに保存したいのですが? 1 2022/09/16 13:23
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- BTOパソコン BTOパソコン ゲーム中のカクつき問題 3 2022/07/14 00:17
- Android(アンドロイド) Googleのファミリーリンクの危険性に気付いてしまったのですが、皆さんの感想を教えてください! 2 2023/05/09 10:01
- 格安スマホ・SIMフリースマホ 楽天回線エリアなのかパートナーエリアなのか 2 2023/01/14 00:56
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダに動画の再生時間の列...
-
aviutlでaviファイルを再生でき...
-
DVD-RAM → PCへの移動
-
外付けHDDからだと、動画が再生...
-
メディアプレイヤーで動画が最...
-
MP3対応カーオーディオでの再...
-
MACでwmvファイル再生&10秒...
-
DVD_RTAVを見るにはどうしたら...
-
特定のAVI動画を再生中する...
-
ビデオファイルとビデオ再生リ...
-
動画再生アプリのVLCのコマンド...
-
Windows7で動画再生→画質が悪い
-
数秒のaviファイルを100個以上...
-
マイビデオの動画ファイルアイ...
-
ムービーメーカーでつくったDVD...
-
Windows Media Playerで再生リ...
-
動画のコマ送り
-
ミニコンポを買ってみたら
-
自動で再生するCD
-
拡張子を変えたらasf音楽ファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダに動画の再生時間の列...
-
DVD_RTAVを見るにはどうしたら...
-
DVD-RAM → PCへの移動
-
mkvファイルの音声トラックの再...
-
外付けHDDからだと、動画が再生...
-
MP3対応カーオーディオでの再...
-
VIDEO_TSファイルを焼いてもDVD...
-
動画再生アプリのVLCのコーデッ...
-
RealPlayerでFLVファイル (.flv...
-
DVDのセッションを閉じる
-
動画再生アプリのVLCのコマンド...
-
DATファイルを再生したい
-
ツクール2000のBGMが再生さ...
-
Windowsメディアプレイヤーのバ...
-
WMPの再生リストをエクセル...
-
aviファイルのサイズが突然0バ...
-
ネットワークがビジー状態
-
特定のAVI動画を再生中する...
-
動画が再生できない・・・音だけ
-
MP3プレイヤーの 音飛びの原因...
おすすめ情報