RK声卡调试 您所在的位置:网站首页 rk3366芯片尺寸 RK声卡调试

RK声卡调试

2023-12-22 02:02| 来源: 网络整理| 查看: 265

通过如下命令确认声卡是否注册成功以及控制节点是否生成 cat /proc/asound/cards root@rk3366:/ # cat /proc/asound/cards 0 [rockchiprt5640c]: rockchip_rt5640 - rockchip,rt5640-codec rockchip,rt5640-codec

查看控制节点

ls -l /dev/snd/ root@rk3366:/ # ls -l /dev/snd/ crw-rw---- system audio 116, 2 2013-01-18 08:51 controlC0 crw-rw---- system audio 116, 4 2013-01-18 08:51 pcmC0D0c crw-rw---- system audio 116, 3 2013-01-18 08:51 pcmC0D0p 通过命令行播放录制调试声卡: 播放:一般播放 1khz 0db 正弦波,然后在 codec 输出端示波器简单测量是否失真,杂音,然 后再使用音频分析仪测试指标。 tinyplay /sdcard/test44.wav -D 0 -d 0 -p 1024 -n 3 root@rk3366:/ # tinyplay Usage: tinyplay file.wav [-D card] [-d device] [-p period_size] [-n n_periods] |root@rk3366:/ # tinyplay /sdcard/test44.wav -D 0 -d 0 -p 1024 -n 3 Playing sample: 2 ch, 44100 hz, 32 bit

录制:

tinycap /sdcard/rec.wav -D 0 -d 0 –c 2 –r 44100 –b 16 –p 1024 –n 3 root@rk3366:/ # tinycap Usage: tinycap file.wav [-D card] [-d device] [-c channels] [-r rate] [-b bits] [-p period_size] [-n n_periods] |root@rk3366:/ # tinycap /sdcard/rec.wav -D 0 -d 0 –c 2 –r 44100 –b 16 –p 1024 –n 3

3.一般复杂的 codec 可提供各种通路的配置,如下图:分别是数字部分通路和模拟部分通路,通 路旁边都有标注控制的寄存器 bit,codec driver 负责将这些控制实例化为 kcontrol,提供给上层 设置切换通路使用,实际的调试方法为从数字部分的通路开始,比如 DACDAT 然后顺着找出一条最 优的路径到达模拟输出端,比如 HPOUT。然后通过 tinymix 控制路径上的相应节点开关,打通通路

tinymix 调试通路:

root@rk3366:/ # tinymix Mixer name: 'rockchip,rt5640-codec' Number of controls: 123 ctl type num name value 0 BOOL 1 Mono Playback Switch Off 1 INT 2 Mono DAC Playback Volume 175 175 2 BOOL 2 Speaker Channel Switch Off Off 3 INT 2 Speaker Playback Volume 31 31 4 BOOL 2 HP Channel Switch Off Off

可通路 ctr id 或者 name 来控制,例子如下,不带 val 设置时,为查询该 mix 的当前状态

root@rk3366:/ # tinymix 0 1 root@rk3366:/ # tinymix 0 Mono Playback Switch: On root@rk3366:/ # tinymix "Mono Playback Switch" 1 root@rk3366:/ # tinymix "Mono Playback Switch" Mono Playback Switch: On 声卡功能以及通路调试 ok 后,需要把通路配置配置到 hal 层,然后可以配置不同场景下的通路 路由,通路的配置即为 tinymix 配置成功后的通路列表的值,把这些值做成相应 codec_config.h 加入到 hal 中,比如如下: hardware/rockchip/audio/tinyalsa_hal/codec_config/rt5640_config.h #ifndef _RT5640_CONFIG_H_ #define _RT5640_CONFIG_H_ #include "config.h" const struct config_control rt5640_speaker_normal_controls[] = { { .ctl_name = "DAI select", .str_val = "1:2|2:1", }, { .ctl_name = "Mono DAC Playback Volume", .int_val = {175, 175}, }, { .ctl_name = "DAC2 Playback Switch", .int_val = {on, on}, }, …… hardware/rockchip/audio/tinyalsa_hal/codec_config/config_list.h struct alsa_sound_card_config sound_card_config_list[] = { …… { .sound_card_name = "rockchiprt5640c", .route_table = &rt5640_config_table, }, ……

通过以上步骤即完成基本的声卡创建,简单调试, 以上使用的 tinyplay, tinycap, tinymix 代码位于android/external/tinyalsa 中,如果系统中没有该命令,可进到该目录执行mm生成相 应的命令。

a. 要学会使用示波器测量音频的信号, 软件方式的确认有时会有误差,最精确最根本的 方式就是确认音频 clk 是否正常,满足规范。音频的信号包含 mclk, bclk, lrck, data。 需要确认信号幅度是否正常,如果 io 电压为 3.3v,测试出来的信号幅值应当在 3.3v 左右。如果幅值太低,则会照成采集不到数据而无声。Clk 的频偏也不宜过大,有可能 会照成杂音。Bclk, lrck 要符合设置的采样率,如果不相符,则会照成音频快进或者播 放缓慢。 b. 播放测试:一般播放 1khz 0db 正弦波,然后使用示波器确认输出是否有削顶失真,相 位失真,杂音等。 c. 录音测试:可使用信号发生器产生 1khz 的波形从 codec 模拟端导入,然后录制波形, 可以通过回放来确认波形是否正常,无失真,或者使用电脑上的软件工具 adobe audition 来分析底噪等等基本指标。 d. 基本功能过完后,需要使用音频分析仪进行 codec 后续的指标测试以及调优


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有