テクノロード掲示板
ようこそ! ゲスト   [登録]  [ログイン]
返答
 件名:Re:WAVファイルの再生について.. 2009-12-15 14:30:47 
admin2
参加日時: 2009-08-19 09:20:38
投稿: 80
場所

>SDカードをうまくよみとれないんですけど、どうすれば良いですか?

どのように動作しない状態でしょうか?

もし、付属のWAV再生のサンプルを手順通りに動作させても全くSDカードを読み込まないということであれば、ハードの故障の可能性がありますので、お手数をおかけして誠に申し訳ないのですが、

postあっとtechno-road.com

(※あっとを@に置き換えてください)

まで一度メールを頂けますでしょうか?

宜しくお願い致します。

IP Logged
引用
 件名:Re:WAVファイルの再生について.. 2009-12-15 10:34:41 
coron

ゲスト
SDカードをうまくよみとれないんですけど、どうすれば良いですか?
IP Logged
引用
 件名:Re:WAVファイルの再生について.. 2009-10-09 11:04:42 
admin2
参加日時: 2009-08-19 09:20:38
投稿: 80
場所

ブツっっという音はWAVファイルの出力値の繋ぎ部分で、0x00(WAVファイルの出力値1Byte目と最後のbyte)と0x80(WAVファイルの無音時の値)の切り替わる時に出る音だと思うので、以下の2つの対処をすれば消えると思います。

①WAVファイルの最初と最後の出力値を切り捨てる

(連続再生時にWAVファイルが無音で始まり、無音で終わっていれば、スムーズに音が繋がる)

 

②初期化時にDAC出力を許可して、0x80を出力しておいて、以降DAC出力を許可のまま固定する

(一番初めのWAVファイル再生時にもブツッと音を再生させなくする)

 

①について

[coron_sdwav.c]のSD_play_wav()関数内を以下のように変更してください。

//=============================
// SDカードWAVファイル再生(セクタ番号)
//=============================
void SD_play_wav(u8 wav_num){
 u32 size;
 u32 sct,sec_num,n,i;
 size =wav_size[wav_num];
 sct  =wav_sector_num[wav_num];
  
 /* TIM5 enable counter */
 TIM_Cmd(TIM5, ENABLE); 
 
 sec_num=(size/512)+1;
 
 //最初のセクタだけヘッダ分を飛ばす
 SD_read(sct*512);
    for(i=0;i<0x3a;i++){sound_buf[0][i]=0x80;}
    for(i=0x3a;i<512;i++){sound_buf[0][i]=buf512[i];}
    sound_flag=1;

    for(n=1;n<(sec_num-1);n++){
     SD_read(512*(n + sct));
     if(sound_flag==2){
         for(i=0;i<512;i++){sound_buf[0][i]=buf512[i];}
         while(sound_flag==2){read_flag=1;}
         read_flag=0;
     }
     else if(sound_flag==1){
         for(i=0;i<512;i++){sound_buf[1][i]=buf512[i];}
         while(sound_flag==1){read_flag=1;}
         read_flag=0;
     }
    }
    sound_flag=0;

 /* TIM5 disable counter */
 TIM_Cmd(TIM5, DISABLE); 
}

 //ここまで

 

②について

[coron_sound.c]のSPK_init()関数内、最後の部分を以下のように変更してください。

<Before>

 /* Dissable DAC Channel1 */
 DAC_Cmd(DAC_Channel_1, DISABLE);

<After>

 /* Ensable DAC Channel1 */
 DAC_Cmd(DAC_Channel_1, ENABLE);
 DAC_SetChannel1Data(DAC_Align_8b_R,0x80);
 DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);

 //ここまで

 

①に関しては最後のByteの切り捨て方が少し強引なので(最後のセクタごと切り捨て)、最大で約50分の1秒(20msec分)ほど最後音声再生が切り捨てられる可能性がありますので注意してください。

 

これらの対処をしてもブツッっと出てしまう場合は、お手数ですが再度ご報告お願い致します。

IP Logged
引用
 件名:Re:WAVファイルの再生について.. 2009-10-09 09:17:18 
Saito

ゲスト

WAV音と同時くらいにブツッと音がしています。

最初の1回だけでなく、WAV音を鳴らすたび1回ずつ出ます。 

長めのWAV音を用意してテストしてみたところ、

WAV音の中間や終わりでは出ていないのが確認できました。

正確にはわかりませんが、WAV音の出始めか直前かで出ているようです。

IP Logged
引用
 件名:Re:WAVファイルの再生について.. 2009-10-08 16:14:20 
admin2
参加日時: 2009-08-19 09:20:38
投稿: 80
場所

ブツッっと音が出るのはどのようなタイミングの時でしょうか?

IP Logged
引用
 件名:WAVファイルの再生について.. 2009-10-08 13:40:42 
Saito

ゲスト

手持ちのWAVファイルをモノラル8ビット22kHzに変換して 

MicroSDカードのSoundDataフォルダに置き、スピーカーをつないで

ライブラリによる再生を試みたところ、再生はできたのですが

ブツッという大き目の音も出てしまっています。

このブツッという音は、変換後のWAVファイルであっても

パソコンで再生させる際には出ないものです。

WAVファイルを512バイトぴったりのサイズにしなければならないとか

その整数倍のサイズでなければならないとかありますでしょうか。

もしくは、ブツッという音が出ないようにする対策法などありましたら

アドバイスいただきたくよろしくお願いいたします。

IP Logged
引用
返答
ページ # 


Powered by ccBoard