[Suzaku:01065] Re: SIDのサンプリング周波数

Keichi Kawaoka email@hidden
2007年 11月 2日 (金) 19:43:25 JST


川岡と申します。

ご指摘のとおり、-1する必要がありました。
ドライバで、-1するほうをお勧めいたします。
(恒久対策として、近々修正版ドライバを公開したいと思っています。)


森戸 誠[MORITO Makoto] さんは書きました:
> 森戸と申します。
> 
>  SUZAKU-V と SID を用いて 音声入力を行っています。
> 
>  音声の取り込みには HPから 提供されている
> ドライバー と FPGA 開発環境 を使っています。
> 
> 現象) サンプリング周波数がずれている。 
> 
> サンプリング間隔を決めている ドライバー(sid.c)の部分は
> 	sid->reg_sample_rate = sid->sample_clock / rate;
> の演算です。
>  sid->reg_sample_rateの値が FPGA内のsampl_rateに書き込まれて
> 24Mhzを分周して サンプリングパルスを作っています。
> 
>  所望のサンプリング周波数(たとえば16kHz)の場合には
>      rate=16000
> となり、sampl_rateの値が FPGA内のsampl_rateは1500となります。
>  すなわち 24Mhzを1500分周するわけです。
> 
> ところが サンプリングのパルスを作っている vhdの記述を見ると
> 
> process (SMPL_CLK, SYS_Rst)
> begin
> 	if SYS_Rst = '1' then
> 		smpl_count <= x"00000000";
> 		smpl_shot <= '0';
> 	elsif SMPL_CLK'event and SMPL_CLK = '1' then
> 		if ad_start = '1' then
> 			if smpl_count = sampl_rate then
> 				smpl_count <= x"00000000";
> 				smpl_shot <= '1';
> 			else
> 				smpl_count <= smpl_count + 1;
> 				smpl_shot <= '0';
> 			end if;
> 		elsif ad_start = '0' and sys_count_en = '0' then
> 			smpl_count <= x"00000000";
> 			smpl_shot <= '0';
> 		else
> 			smpl_count <= smpl_count + 1;
> 			smpl_shot <= '0';
> 		end if;
> 	end if;
> end process ;
> 
> となっています。特に
> 	if smpl_count = sampl_rate then
> 		smpl_count <= x"00000000";
> 		smpl_shot <= '1'; 
> の部分を見ると smpl_count は sampl_rate(1500)になってから
> 0になります。ということは 1501分周しています。
> 
> ドライバで
>  	sid->reg_sample_rate = sid->sample_clock / rate; -1;
> とするか
>   FPGAで  if smpl_count = sampl_rate-1
>  の対処が必要かと思います。
>  いかがでしょうか? 間違っています?
> 
> 
> 
> 
> 
> 
> _______________________________________________
> suzaku mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/suzaku
> 


-- 
____________________________________________________

    川岡 圭一

      (株)アットマークテクノ 開発部
        札幌市中央区北5条東2丁目 AFTビル 6F
        TEL: 011-207-6550    FAX: 011-207-6570
        URL: http://www.atmark-techno.com/

    E-mail: email@hidden
____________________________________________________




suzaku メーリングリストの案内