在嵌入式AI语音设备领域,RK3326凭借性价比和对多通道音频的支持,成为不少开发者的首选主控。但音频调试向来是“坑多细节密”——前阵子有位同学反馈,用tinycap录PCM能成,录WAV就翻车,硬件飞线后还采不到回采数据。今天结合实际硬件图纸、DTS配置和调试日志,跟大家拆解RK3326上PDM麦克风+音频回采的完整调试流程,帮你避开那些“一看就会,一调就废”的坑。
一、调试背景:先搞懂硬件与初始问题
在动手前,必须先理清硬件链路——音频调试的核心是“软件配置匹配硬件实际连接”,否则再改代码也白搭。




1.核心硬件组成
|
模块
|
关键参数与连接
|
|
主控
|
RK3326,负责PDM音频数据接收与处理,关键引脚:W15(GPIO2_C6,PDM_CLK)、AA15(PDM_SDI1)、Y15(PDM_SDI2)
|
|
音频Codec
|
集成在PMIC RK817中(RK817-codec),支持PDM输入、I2S输出,回采依赖ADC环路(adc-for-loopback)
|
|
麦克风
|
双PDM麦克风(LEFT/RIGHT),分别连接PDM_SDI1(CN1)、PDM_SDI2(CN2),供电3.3V(VCC_3V0),带2.2uF滤波电容
|
|
时钟与通路
|
RK817的PDM_CLK需飞线到RK3326的W15脚(原硬件未直连,这是关键坑点),麦克风信号线带100K上拉电阻(R9968/R9969)
|
2.初始调试问题
1.格式差异问题:tinycap /sdcard/rec3.pcm -D 0 -d 1 -c 8 ...能录PCM,但改输出为.wav就失败;
2.回采失败问题:硬件飞线(RK817 PDMCLK→W15)后,执行tinymix 0 2 + tinycap,录不到机器内播音的回采数据;
3.时钟无波形:示波器测W15脚(PDM_CLK),无时钟信号,麦克风数据自然传不进来。
二、核心问题拆解:从“现象”到“本质”
1.为什么tinycap录WAV会失败?——格式本质差异
很多同学会误以为“改个文件后缀就行”,但tinycap的设计逻辑是只输出原始PCM数据,而WAV格式需要“文件头+ PCM数据”(文件头记录采样率、声道数、位深等信息)。
• PCM:无文件头,tinycap直接写采样数据,硬件输出什么就存什么,所以能成功;
• WAV:缺少文件头,tinycap无法生成符合WAV规范的文件,系统识别为“无效文件”,看似“录不了”,实际是格式不兼容。
解决思路:先录PCM,再用ffmpeg补文件头转WAV。
2.回采与时钟问题:硬件+软件双重卡点
飞线后仍无时钟、无回采,核心是两个卡点:
(1)硬件卡点:PDM_CLK未正确连接
RK3326的PDM模块需要外部时钟驱动(来自RK817的PDMCLK),原硬件未直连,需飞线:
•飞线目标:RK817的PDMCLK引脚→ RK3326的W15脚(GPIO2_C6,对应pdm_clk0m1引脚);
•易错点:飞线后未检查波形——若仍无时钟,不是硬件没接好,就是软件没启用该引脚。
(2)软件卡点:DTS引脚配置不全+通路未选对
从DTS看,PDM节点的pinctrl-0配置缺失关键引脚:
// 原始PDM节点配置(不全)&pdm {status ="okay";pinctrl-names ="default";pinctrl-0= <&pdm_clk1 &pdm_sdi1 &pdm_sdi2>;// 少了pdm_clk0m1、pdm_sdi0m1};
“PDM_SDI0用于回采,在1-2通道”,但原始配置没加&pdm_sdi0m1,导致回采通路没启用;同时缺少&pdm_clk0m1,时钟引脚没被正确配置为PDM功能,自然无波形。
三、分步解决方案:硬件→软件→验证
第一步:硬件链路核查(优先级最高)
音频调试先查硬件,避免“软件瞎调”。按以下清单逐一确认:
1.麦克风供电:测量CN1/CN2的MIC_3V0_CONN引脚,电压是否3.0V(正常),滤波电容C9867/C9868(2.2uF)是否焊接;
2.PDM信号线:PDM_SDI1(CN1引脚2)→RK3326 AA15,PDM_SDI2(CN2引脚2)→RK3326 Y15,线路是否通(用万用表测通断);
3.时钟飞线:RK817的PDMCLK引脚→ RK3326 W15(GPIO2_C6),飞线是否牢固,无虚焊;
4.上拉电阻:R9968/R9969(100K)是否焊接(PDM信号线需上拉才能稳定传输);
5.回采硬件:RK817的HP_SNS引脚(耳机检测)是否接R6134(0Ω电阻,回采信号需要)。
第二步:DTS配置修改
基于文档6的原始DTS,重点修改PDM节点和RK817 Codec节点,确保引脚与功能匹配:
1. PDM节点修改(启用时钟与回采引脚)
&pdm {status ="okay";pinctrl-names ="default";pinctrl-0= <&pdm_clk0m1&pdm_clk1&pdm_sdi0m1&pdm_sdi1&pdm_sdi2&pdm_sdi3>;};
2. RK817 Codec节点确认(回采必需)
确保rk817_codec节点启用回采功能,关键参数如下:
rk817_codec: codec {compatible ="rockchip,rk817-codec";clocks = <&cru SCLK_I2S1_OUT>;clock-names ="mclk";pinctrl-names ="default";pinctrl-0= <&i2s1_2ch_mclk>,<&hp_init>;pdmdata-out-enable;// 启用PDM数据输出use-ext-amplifier;// 外部放大器(若有)adc-for-loopback;// 开启ADC回采(关键!没有这个回采用不了)hp-ctl-gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_LOW>;hp-volume = <20>;spk-volume = <20>;};
第三步:tinymix+tinycap调试(通路配置与录制)
tinymix是RK平台配置音频通路的核心工具,选对控制项才能打通数据链路。
1.用tinymix配置通路(关键一步)
最初用tinymix 0 2失败,换成tinymix 1 1就有反应,原因是:
•tinymix 0:对应I2S音频通路(用于耳机/喇叭),不是PDM麦克风通路;
•tinymix 1:对应PDM麦克风通路,1表示“启用该通路”(不同平台控制项编号可能不同,可通过tinymix命令查看所有控制项)。
正确操作:
# 查看所有音频控制项,找到PDM相关的控制项(通常名称含“PDM”或“Mic”)tinymix# 启用PDM麦克风通路(假设控制项1是PDM使能)tinymix11
2. tinycap录制PCM(参数必须匹配硬件)
# 命令解析:-D 0(音频设备0)-d 1(声卡1,PDM对应的声卡)-c 8(8通道,覆盖SDI0-3)# -r 16000(采样率16K,PDM常用)-b 16(位深16)-p 1024(周期大小)-n 3(录制3秒)tinycap/sdcard/rec3.pcm -D0-d1-c8-r16000-b16-p1024-n3
•为什么用-c 8?因为RK3326的PDM模块支持4路SDI(SDI0-3),每路2通道,共8通道;用户的MIC在3-6通道(SDI1/2),回采在1-2通道(SDI0),只有录8通道才能同时抓到MIC和回采数据。
第四步:回采问题专项处理
若仍采不到回采数据(机器内播音的声音),需额外检查:
1.回采功能是否启用:确认rk817_codec节点的adc-for-loopback是否配置,编译DTS时是否生效(可通过以下指令查看);
cat/sys/firmware/devicetree/base/rk817@20/codec/adc-for-loopback
2.时钟波形检查:用示波器测RK3326 W15脚(PDM_CLK),若仍无波形,可能是DTS配置没生效(重新编译烧录)或硬件飞线断了;
3.播放测试音频:确保“机器内播音”正常(比如用tinyplay播放一个WAV文件),否则无声音可回采。
四、最终验证:从录制到播放全流程
1.转码PCM为WAV(便于播放验证):
tinycap录的PCM无文件头,需用ffmpeg转成WAV:
# -f s16le(16位小端)-ar 16000(采样率)-ac 8(8通道)-i 输入PCM -o 输出WAVffmpeg-f s16le -ar16000-ac8-i /sdcard/rec3.pcm /sdcard/rec3.wav
1.播放验证:
◦用tinyplay播放转好的WAV文件,若能听到“自己说话的声音(MIC)”和“机器内播音的声音(回采)”,说明调试成功;
◦若只有MIC声音,无回采,检查adc-for-loopback配置和HP_SNS电阻;
◦若什么声音都没有,重新查PDM_CLK波形和tinymix通路配置。
五、调试经验总结:避坑关键点
1.硬件优先原则:先查电压、线路通断、波形(尤其是时钟信号),再调软件——没有时钟,软件再对也没数据;
2.DTS引脚匹配:RK平台的pinmux是“硬约束”,PDM的CLK/SDI引脚必须配置为对应功能(如RK_FUNC_2),不能用GPIO功能;
3.tinymix通路别乱选:控制项编号对应不同通路,不确定时用tinymix列全列表,结合硬件功能猜(含PDM/Mic的优先试);
4.格式差异要记牢:tinycap只产PCM,转WAV用ffmpeg,别直接改后缀;
5.回采依赖Codec配置:RK817的回采需要adc-for-loopback,硬件上HP_SNS电阻不能少。
结尾
RK3326的音频调试看似复杂,实则是“硬件链路+软件配置+工具使用”的三重匹配。只要按“硬件核查→DTS修改→通路配置→录制验证”的步骤来,大部分问题都能解决。如果你的调试过程中遇到特殊坑,欢迎在评论区留言,我们一起讨论~
-
麦克风
+关注
关注
16文章
698浏览量
57911 -
音频
+关注
关注
31文章
3227浏览量
86323 -
调试
+关注
关注
7文章
653浏览量
35879 -
RK3326
+关注
关注
0文章
9浏览量
2080
发布评论请先 登录
rk3326麦克风矩阵使用说明
RK3326 Android方案软件设计资料下载
如何去实现RK3326 android10.0(Q) OTA升级呢
RK3326 Android8.1系统定制化通用修改方案
rk3566和rk3326的区别
rk3326相当于骁龙什么
rk3326芯片参数介绍
RK3326平台GC2385摄像头调试实战:从报错到功能正常的完整排查指南
RK3326音频调试避坑指南:从“录不了”到“全功能跑通”的实战历程
评论