Firefly开源社区

12
发表新贴
打印 上一主题 下一主题

[应用开发] rk3308产生i2s时钟问题

34

积分

0

威望

0

贡献

技术小白

积分
34

rk3308产生i2s时钟问题

发表于 2020-10-9 20:56:39      浏览:10231 | 回复:11        打印      只看该作者   [复制链接] 楼主
运行eq_drc_process的应用程序,运行正常,log如下:
# ./eq_drc_process
WAKE_LOCK[open_file_descriptors] fatal error opening "/sys/power/wake_lock": No such file or directory

==========EQ/DRC process release version 1.23===============
snd_pcm_open
snd_pcm_hw_params_malloc
snd_pcm_hw_params_any!
snd_pcm_hw_params_set_access!
snd_pcm_hw_params_set_format
channels = 2
bufferSize = 20480
periodSize = 1024
Rate = 48000
Open record device done
Open PCM: fake_play
[ 7736.090919] rockchip_i2s_tdm_set_sysclk:dir=tx ,sysclk=12288000, trcm=0x10000000
[ 7736.090967]  rk_aif1_hw_params:snd_soc_dai_set_sysclk ok!
[ 7736.091246] rockchip_i2s_tdm_hw_params:mclk_rate=12288000,bclk_rate=3072000,fs=48000,div_bclk=4,div_lrck=64
[ 7736.091272] rockchip_i2s_tdm_hw_params:channel=2, bit=16
interleaved mode
snd_pcm_hw_params_alloca
interleaved mode
format successed
channels = 2
setting sampling rate (48000)
write_bufferSize = 4096
write_periodSize = 1024
rk eq_drc v2.02 2019-07-20 Oct 11 2019 09:26:56
psEqualizer->m_pfControlValue = 0.000000
open write device is successful
WAKE_LOCK[RK_acquire_wake_lock] id=eq_drc_process
param_name = /data/cfg/eq_bin/Para_48000Hz_2ch.bin
EQ/DRC Algorithm 3BAND_IIR_DIVFREQ PEAK VALUE V1.0...Oct 11 2019 09:26:56
GetLMTVersion v1.03 2019-10-10 Oct 11 2019 09:26:57,force=0 firstInit=1

但是,我要产生8k采用率的话,修改Rate=8000后,运行异常,log如下:
# ./eq_drc_process
WAKE_LOCK[open_file_descriptors] fatal error opening "/sys/power/wake_lock": No such file or directory

==========EQ/DRC process release version 1.23===============
snd_pcm_open
snd_pcm_hw_params_malloc
snd_pcm_hw_params_any!
snd_pcm_hw_params_set_access!
snd_pcm_hw_params_set_format
channels = 2
bufferSize = 20480
periodSize = 1024
Rate = 8000
Open record device done
Open PCM: fake_play
[ 7939.417371] rockchip_i2s_tdm_set_sysclk:dir=tx ,sysclk=12288000, trcm=0x10000000
[ 7939.417426]  rk_aif1_hw_params:snd_soc_dai_set_sysclk ok!
[ 7939.417699] rockchip_i2s_tdm_hw_params:mclk_rate=12288000,bclk_rate=3072000,fs=48000,div_bclk=4,div_lrck=64
[ 7939.417725] rockchip_i2s_tdm_hw_params:channel=2, bit=16
interleaved mode
snd_pcm_hw_params_alloca
interleaved mode
format successed
channels = 2
setting sampling rate (8000)
write_bufferSize = 682
write_periodSize = 170
rk eq_drc v2.02 2019-07-20 Oct 11 2019 09:26:56
psEqualizer->m_pfControlValue = 0.000000
open write device is successful
WAKE_LOCK[RK_acquire_wake_lock] id=eq_drc_process
param_name = /data/cfg/eq_bin/Para_8000Hz_2ch.bin
copy eq_bin...
AudioPost_Init fopen failed, pcParaName = /data/cfg/eq_bin/Para_8000Hz_2ch.bin
Segmentation fault

请问。除了修改Rate=8000,还需要修改什么吗?
回复

使用道具 举报

34

积分

0

威望

0

贡献

技术小白

积分
34
发表于 2020-10-9 20:59:36        只看该作者  沙发
补充:
[ 7939.417371] rockchip_i2s_tdm_set_sysclk:dir=tx ,sysclk=12288000, trcm=0x10000000
[ 7939.417426]  rk_aif1_hw_params:snd_soc_dai_set_sysclk ok!
[ 7939.417699] rockchip_i2s_tdm_hw_params:mclk_rate=12288000,bclk_rate=3072000,fs=48000,div_bclk=4,div_lrck=64
[ 7939.417725] rockchip_i2s_tdm_hw_params:channel=2, bit=16
从这个log看,修改rate=8k后,产生的还是48k的采用率。
回复

使用道具 举报

1万

积分

18

威望

20

贡献

神级创客

Rank: 8Rank: 8

积分
10850

突出贡献

发表于 2020-10-10 10:32:44        只看该作者  板凳
录制音频可以加参数指定采样率;8Khz下eq_drc_process运行异常是没有/data/cfg/eq_bin/Para_8000Hz_2ch.bin文件,可以参考docs/tool/Rockchip_RK3308_User_Manual_Linux_Audio_EQ_TOOL_CN.pdf的使用,也可以粗暴地将Para_48000Hz_2ch.bin改名为Para_8000Hz_2ch.bin让程序运行通过
回复

使用道具 举报

34

积分

0

威望

0

贡献

技术小白

积分
34
发表于 2020-10-10 12:02:46        只看该作者  地板
zyk 发表于 2020-10-10 10:32
录制音频可以加参数指定采样率;8Khz下eq_drc_process运行异常是没有/data/cfg/eq_bin/Para_8000Hz_2ch.bin ...

你好,将Para_48000Hz_2ch.bin改名为Para_8000Hz_2ch.bin后,程序是可以跑过了。但是测出来的采样率还是48K。我的需求就是RK3308上电后,一直提供8k的时钟。文档我待会在细看下。
回复

使用道具 举报

34

积分

0

威望

0

贡献

技术小白

积分
34
发表于 2020-10-10 14:34:05        只看该作者  5#
zyk 发表于 2020-10-10 10:32
录制音频可以加参数指定采样率;8Khz下eq_drc_process运行异常是没有/data/cfg/eq_bin/Para_8000Hz_2ch.bin ...

请问下,还需要修改其他参数吗?
回复

使用道具 举报

1万

积分

18

威望

20

贡献

神级创客

Rank: 8Rank: 8

积分
10850

突出贡献

发表于 2020-10-10 15:06:42        只看该作者  6#
1、请问使用的是哪一个板型
2、你那边如何测试采样率是48K或8K,是要开机后录音时默认使用8K采样率?
回复

使用道具 举报

34

积分

0

威望

0

贡献

技术小白

积分
34
发表于 2020-10-12 11:16:38        只看该作者  7#
zyk 发表于 2020-10-10 15:06
1、请问使用的是哪一个板型
2、你那边如何测试采样率是48K或8K,是要开机后录音时默认使用8K采样率?

你好;
1.采用的是参照EVB_rk3308_V13设计的自研板。
2.系统起来后,测量RK3308的BCLK和WCLK引脚,测试的采样率是48K。不过这您可以暂时先不管,因为我把eq_drc的进程关掉以后,时钟就没了。所以肯定就是eq_drc的应用程序产生的时钟。我的需求就是想要eq_drc产生8K的时钟,而不是48K
还有另外的测量方法:就是通过上面发的log信息
[ 7939.417371] rockchip_i2s_tdm_set_sysclk:dir=tx ,sysclk=12288000, trcm=0x10000000
[ 7939.417426]  rk_aif1_hw_params:snd_soc_dai_set_sysclk ok!
[ 7939.417699] rockchip_i2s_tdm_hw_params:mclk_rate=12288000,bclk_rate=3072000,fs=48000,div_bclk=4,div_lrck=64
[ 7939.417725] rockchip_i2s_tdm_hw_params:channel=2, bit=16
这个信息和我测量引脚的时钟是一致的。
请问,是还有什么地方没有配置到位吗?
回复

使用道具 举报

152

积分

0

威望

0

贡献

技术小白

积分
152
发表于 2020-10-12 11:50:40        只看该作者  8#
缘起的风 发表于 2020-10-12 11:16
你好;
1.采用的是参照EVB_rk3308_V13设计的自研板。
2.系统起来后,测量RK3308的BCLK和WCLK引脚,测试 ...

可以看下etc下asound.conf 文件对你是否有帮助
回复

使用道具 举报

1万

积分

18

威望

20

贡献

神级创客

Rank: 8Rank: 8

积分
10850

突出贡献

发表于 2020-10-12 20:10:03        只看该作者  9#
本帖最后由 zyk 于 2020-10-12 20:11 编辑
缘起的风 发表于 2020-10-12 11:16
你好;
1.采用的是参照EVB_rk3308_V13设计的自研板。
2.系统起来后,测量RK3308的BCLK和WCLK引脚,测试 ...

你好:
您的意思是系统启动后运行eq_drc程序时测量BCLK和WCLK引脚是48K采样率是吧,请问采样率是通过示波器去测量的吗,将eq程序改成8K启动后,示波器测试结果仍旧是48k?
回复

使用道具 举报

34

积分

0

威望

0

贡献

技术小白

积分
34
发表于 2020-10-12 20:37:33        只看该作者  10#
zyk 发表于 2020-10-12 20:10
你好:
您的意思是系统启动后运行eq_drc程序时测量BCLK和WCLK引脚是48K采样率是吧,请问采样率是通过示 ...

是的,运行eq_drc程序是48K采样率,位时钟是3.072M;改成8K,也没用。
然后我用aplay播放自己制作的8K音频文件,测出来的就是8K,512K。
回复

使用道具 举报

返回列表
12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表