VS-RK3399嵌入式主板该如何进行调试

电子说

1.3w人已加入

描述

VS-RK3399嵌入式主板调试方法

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

主板

调试方法:

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

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

root@rk3366:/sys/kernel/debug/regmap # ls

0-001c

0-0040

1-001c

ff880000.spdif

ff898000.i2s-8ch

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

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

Advanced Linux Sound Architecture ---》

Debug

More verbose debug

Enable PCM ring buffer overrun/underrun debugging

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

#define XRUN_DEBUG_BASIC (1《《0)

#define XRUN_DEBUG_STACK (1《《1) /* dump also stack */

#define XRUN_DEBUG_JIFFIESCHECK (1《《2) /* do jiffies check */

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

3. 通过查看 clk tree 确认相应的 audio clk 是否正常,比如 mclk:如下为采样率为

44100hz 的 mclk: 11.2896M。

c at /sys/kernel/debug/clk/clk_summary | grep i2s

i2s_2ch_src 0 0 576000000

0 0

i2s_2ch_frac 0 0 28800000

0 0

i2s_8ch_src 0 0 576000000

0 0

i2s_8ch_frac 0 0 11289600

0 0

i2s_8ch_pre 0 0 11289600

0 0

sclk_i2s_8ch 0 0 11289600

0 0

i2s_8ch_clkout 0 0 11289600

0 0

4. 要学会使用示波器测量音频的信号, 软件方式的确认有时会有误差,最精确最根本的方式就是确认音频 clk 是否正常,满足规范。音频的信号包含 mclk, bclk, lrck, data。需要确认信号幅度是否正常,如果 io 电压为 3.3v,测试出来的信号幅值应当在 3.3v

左右。如果幅值太低,则会照成采集不到数据而无声。Clk 的频偏也不宜过大,有可能会照成杂音。Bclk, lrck 要符合设置的采样率,如果不相符,则会照成音频快进或者播放缓慢。

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

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

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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分