瑞芯微Rockchip开发者社区
直播中

杨平

7年用户 1686经验值
私信 关注
[经验]

浅析RK3399 Linux4.4 Audio常用调试方法

RK3399的CPU采用big.LITTLE大小核架构,双Cortex-A72大核+四Cortex-A53小核结构,对整数、浮点、内存等作了大幅优化,在整体性能、功耗及核心面积三个方面都具革命性提升。 RK3399的GPU采用四核ARM新一代高端图像处理器Mali-T860,集成更多带宽压缩技术:如智能迭加、ASTC、本地像素存储等,还支持更多的图形和计算接口,总体性能比上一代提升45%。

盈鹏飞科技最新研发的RK3399安卓主板,搭载了最新android7.1 系统,4G DDR3内存,32G EMMC 存诸等...RK3399开发板主板尺寸为:146*102mm,设计有非常丰富的接口,板载5路UART,支持USB3.0高性能设备接口, WIFI/BT二合一,HDMI OUT 、HDMI INT、Type C、4G、IR、以太网等;可扩展模块包括4G模块、Camera(1300万、500万)等应用类功能模块。

RK3399安卓主板为消费类电子、智能终端、MID、无线通讯、医疗设备、工业控制等行业产品的应用开发而设计,超强的视频处理能力,超高清视频输出优势,接口丰富、性能稳定。支持Android\Linux\Ubuntu系统,软件支持完善,开放源代码适合企业二次开发带高清显示的商显广告机、自助售货机、教育终端等,可降低研发门槛,缩短产品研发周期。

1.jpg

常用调试方法:

1、查看 codec 寄存器,I²S 寄存器,spdif 寄存器等等,出现问题时,往往需要常看寄存 器的状态是否正常,来定位分析问题。

a凡是使用 regmap 的驱动, 在/sys/kernel/debug/regmap 都有相应的查询入口,如下:

1.jpg

例如:1-001c 为 rt5640 的 i2c 地址,挂载在 i2c1, codec 地址为 0x1c,那么此目录中的 registers 即为 codec 的 register,其他类似。

2、Xrun debug, 一般用于 debug underrun 或者 overrun,出现此两者情况时内核会 打印 log 协助问题的定位分析。Menuconfig 中需要开启如下选项:

1.jpg

然后在对应声卡/proc/asound/card0/xrun 中写入相应的值,值如下:

1.jpg

比如 echo 1 > xrun 或者 echo 3 > xrun 或者 echo 7 > xrun 开启所有 debug 信息检测。

3、通过查看 clk tree 确认相应的 audio clk 是否正常,比如 mclk:如下为采样率为44100hz 的 mclk: 11.2896M。

1.jpg

4、要学会使用示波器测量音频的信号, 软件方式的确认有时会有误差,最精确最根本的 方式就是确认音频 clk 是否正常,满足规范。音频的信号包含 mclk, bclk, lrck, data。 需要确认信号幅度是否正常,如果 io 电压为 3.3v,测试出来的信号幅值应当在 3.3v 左右。如果幅值太低,则会照成采集不到数据而无声。Clk 的频偏也不宜过大,有可能 会照成杂音。Bclk, lrck 要符合设置的采样率,如果不相符,则会照成音频快进或者播 放缓慢。

5、播放测试:一般播放 1khz 0db 正弦波,然后使用示波器确认输出是否有削顶失真,相 位失真,杂音等。

6、录音测试:可使用信号发生器产生 1khz 的波形从 codec 模拟端导入,然后录制波形, 可以通过回放来确认波形是否正常,无失真,或者使用电脑上的软件工具 adobe audition 来分析底噪等等基本指标。

7、基本功能过完后,需要使用音频分析仪进行 codec 后续的指标测试以及调优。

原作者:szhebin

更多回帖

发帖
×
20
完善资料,
赚取积分