多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

A2B数字麦克风配置实战:SigmaStudio时隙映射与PDM时钟分频详解

A2B数字麦克风配置实战:SigmaStudio时隙映射与PDM时钟分频详解 1. 项目背景与核心需求拆解1.1 为什么A2B数字麦克风值得单独写一篇配置教程车载音频和工业音频采集领域这两年有个很明显的趋势模拟麦克风正在被数字麦克风快速替代而A2BAutomotive Audio Bus总线则是把数字麦克风接入车载音频主干网络的主流方案之一。我接触过不少做车载语音交互、车内降噪、会议阵列的团队他们卡住的地方往往不是算法而是最前端——麦克风根本没出声或者出声了但通道映射全乱。A2B这套东西的坑在于它是一条单主机多从机的菊花链总线主控芯片比如AD2428W系列负责给整条链路上的从机供电、下发时钟、分配时隙从板上的数字麦克风MEMS或PDM接口采集到的数据要经过A2B从机芯片打包再沿着总线回传到主控最后通过主控的I2S/TDM接口送给SoC或DSP。整条链路里任何一个环节配置错了结果都是“没声音”或者“全是噪声”。SigmaStudio是ADI官方给A2B和SigmaDSP系列做的图形化配置工具它把寄存器配置、时隙分配、GPIO控制这些底层操作变成了拖拽和填表。但工具好用不代表没门槛——A2B的Discovery模式、时隙映射、PDM麦克风的时钟分频、从板的供电模式这些概念如果没搞清楚你在SigmaStudio里点半天也出不来声音。这篇内容面向的是手上有AD2428WD-EVB主控评估板和AD2428WC-EVB从板评估板想快速把数字麦克风跑通的工程师。不管你是刚接触A2B的新手还是之前调过但被时隙映射搞晕的老手我都会把每一步的“为什么”讲清楚让你不只是抄配置而是真正理解这条链路怎么跑起来的。1.2 硬件平台与信号链路全貌先把硬件摆清楚。AD2428WD-EVB是主控板板载AD2428W主控芯片通常通过USB连接到PCSigmaStudio通过它下发配置。AD2428WC-EVB是从板板载AD2428W从机芯片上面有麦克风接口。两块板之间用A2B总线通常是双绞线或专用线缆连接主控的OUT接到从板的IN从板的OUT接回主控的IN如果是环网或者不接如果是纯菊花链末端。信号流向是这样的数字麦克风比如ADMP521这类PDM输出的MEMS麦克风接到从板的PDM接口从机芯片采集PDM数据经过抽取滤波变成PCM然后按照主控分配的时隙把PCM数据放到A2B总线的上行时隙里。主控收到后通过I2S/TDM接口输出给外部设备。SigmaStudio要配置的就是主控怎么发现从机、怎么分配时隙、从机的PDM接口怎么分频、麦克风数据放在哪个时隙、主控怎么把时隙数据映射到I2S输出。这里有个关键点很多人忽略A2B总线上的时隙分配是主控说了算的从机只是被动接收。所以你在SigmaStudio里配置的时候主控和从机的配置要对应上主控说“第4个上行时隙放麦克风数据”从机就得配置成“把PDM数据放到第4个上行时隙”。两边对不上就是没声音。1.3 常见“没声音”问题的根因分类根据我自己的调试记录和帮别人排查的经验“数字麦克风阵列没声音”这个问题根因基本落在下面几类问题类别典型现象排查方向总线未连通SigmaStudio里看不到从机线缆、终端电阻、Discovery模式供电异常从机可见但麦克风无输出从板供电模式、PDM麦克风供电时钟配置错误有噪声或采样率不对PDM时钟分频、A2B超帧率时隙映射错误其他通道有声麦克风通道静音上行时隙分配、I2S输出映射GPIO/中断未配麦克风不启动PDM使能引脚、从机GPIO配置这张表建议你存下来后面排查的时候直接对号入座。接下来我会按配置流程把每一类问题的预防和解决方法都揉进去讲。2. SigmaStudio环境搭建与工程创建2.1 软件版本选择与安装要点SigmaStudio的版本选择有个坑不是越新越好。A2B的配置模块在不同版本里位置和选项会有变化而且有些老版本的A2B插件对AD2428W系列的支持更稳定。我实测下来4.6和4.7这两个大版本对AD2428WD-EVB的支持比较成熟4.5之前的版本在Discovery阶段偶尔会抽风。安装的时候注意两点第一安装路径不要有中文和空格SigmaStudio底层调用的一些命令行工具对路径很敏感第二安装完成后要单独安装A2B的插件包通常叫A2B Software Package或者SigmaStudio A2B Add-in这个包不在主安装程序里要去ADI官网单独下载。很多人装完SigmaStudio发现找不到A2B的模块就是漏了这一步。安装完成后把AD2428WD-EVB通过USB连上PC在设备管理器里应该能看到ADI的USB设备。如果看不到先装驱动驱动在A2B插件包的安装目录里。Windows 10/11有时候会自动装一个错误的驱动需要手动更新成ADI的。提示装完插件后打开SigmaStudio在工具箱里应该能看到“A2B”分类。如果看不到检查插件是否装到了正确的SigmaStudio版本目录下。2.2 新建A2B工程与主从板卡识别打开SigmaStudio新建工程在工具箱里找到A2B模块拖一个“A2B Master”到原理图里。这时候会弹出一个配置窗口让你选择主控芯片型号。AD2428WD-EVB对应的是AD2428W选这个。选完之后SigmaStudio会尝试通过USB和主控板通信。如果通信成功你会在A2B Master模块下面看到一个“Discovery”按钮。点它SigmaStudio会向总线发送Discovery信号扫描链路上有哪些从机。正常情况下AD2428WC-EVB会被识别出来显示为一个从机节点并且会显示它的芯片型号和当前状态。如果Discovery失败先检查线缆。A2B总线对线缆有要求不是随便两根线就能通的。评估板上一般用的是专用的A2B线缆或者双绞线线序不能错。另外主控板的终端电阻配置要正确——如果是菊花链末端终端电阻要使能如果是环网中间节点不使能。这个在评估板上通常有跳线帽控制看板子上的丝印。Discovery成功后SigmaStudio会自动生成一个基本的链路拓扑图主控在左边从机在右边中间是A2B总线。这个拓扑图是后续所有配置的基础时隙分配、GPIO控制都是在这个图上操作的。2.3 工程参数初始化采样率与超帧率在开始配置麦克风之前要先定好整个A2B网络的音频参数。核心是两个采样率和超帧率。采样率决定了音频数据的质量车载场景常用48kHz会议阵列可能用16kHz。超帧率决定了A2B总线上每帧能承载多少时隙。A2B的超帧率通常是采样率的倍数比如48kHz采样率下超帧率可能是48kHz每帧1个采样或者24kHz每帧2个采样但这样会降低时隙利用率。在SigmaStudio的A2B Master配置里找到“Network Configuration”或者类似的选项设置采样率为48kHz超帧率保持默认的48kHz。这个组合下A2B总线的上行和下行各能提供最多32个时隙具体数量取决于芯片型号和配置。对于单个数字麦克风占1个上行时隙就够了如果是麦克风阵列比如4个麦克风那就占4个上行时隙。这里有个计算过程要说明A2B总线的带宽是固定的超帧率越高每帧的时间越短能承载的时隙数就越少。48kHz超帧率下每帧约20.8微秒AD2428W支持最多32个上行时隙和32个下行时隙。如果你要接多个从机、每个从机带多个麦克风就要算一下总时隙数够不够。比如4个从机各带4个麦克风那就是16个上行时隙还在32个以内没问题。注意采样率和超帧率一旦设定后续所有从机的配置都要和这个一致。如果从机的PDM时钟分频算出来的采样率和主控设定的不一致数据就会错位表现为噪声或者完全没声音。3. 从板数字麦克风接口配置详解3.1 PDM麦克风与A2B从机的硬件连接AD2428WC-EVB从板上通常有一个或多个PDM麦克风接口。PDM脉冲密度调制麦克风输出的是1bit的密度调制信号需要从机芯片内部的抽取滤波器把它变成PCM。硬件连接上PDM麦克风有两个关键信号CLK时钟和DATA数据。CLK由从机芯片提供DATA是麦克风输出的。接线的时候注意PDM麦克风的CLK频率是有范围的典型值在1MHz到3.2MHz之间。从机芯片内部有一个PDM时钟分频器从A2B的系统时钟分频得到PDM时钟。这个分频比要算对算错了要么麦克风不工作时钟太慢要么数据速率对不上时钟太快。以ADMP521为例它的CLK频率范围是0.35MHz到3.2MHz采样率是CLK频率除以64因为PDM是1bit抽取滤波后变成16bit或24bit PCM抽取比通常是64。如果你要48kHz采样率那CLK就是48kHz乘以64等于3.072MHz。这个频率在ADMP521的范围内没问题。从机芯片的PDM时钟分频器怎么算A2B的系统时钟通常是49.152MHz48kHz乘以1024或者是其他值取决于主控的配置。假设系统时钟是49.152MHz你要得到3.072MHz的PDM时钟分频比就是49.152除以3.072等于16。所以在SigmaStudio里从机的PDM时钟分频要设成16。3.2 SigmaStudio中从机PDM模块的参数填写在SigmaStudio的拓扑图里点选从机节点会展开从机的配置选项。找到“PDM”或者“Microphone”相关的模块这里要填几个关键参数PDM时钟分频上面算的16填进去。抽取比通常选64对应16bit PCM输出如果选128对应24bit输出但时隙占用会翻倍。麦克风数量AD2428WC-EVB通常支持2个PDM麦克风左右声道如果你只接一个就选1。数据放置位置这里要选上行时隙的编号。比如你打算把麦克风数据放在第4个上行时隙就填4。填完之后SigmaStudio会自动计算实际的采样率显示在界面上。你要确认这个采样率和主控设定的48kHz一致。如果不一致回去检查分频比和抽取比。实操心得PDM时钟分频这个参数SigmaStudio有时候不会自动帮你算需要你手动填。我建议你先用计算器把分频比算好再填进去不要靠猜。填错了不会报错但就是没声音。3.3 麦克风供电与使能引脚配置PDM麦克风需要供电通常是1.8V或3.3V看麦克风型号。AD2428WC-EVB上一般有LDO或者直接从前级电源取电但有些麦克风还有一个使能引脚EN需要拉高才工作。这个使能引脚通常接到从机芯片的某个GPIO上。在SigmaStudio里找到从机的GPIO配置模块把对应的GPIO配置成输出并且设置初始电平为高。这样从机启动后GPIO就会输出高电平使能麦克风。如果你发现Discovery正常、时隙也配了但就是没声音先拿万用表量一下麦克风的供电和使能引脚。我遇到过好几次是使能引脚没配麦克风根本没启动。另外PDM麦克风的DATA引脚是从机芯片采样的如果DATA引脚悬空或者接错从机采到的就是全0或全1表现为静音或直流噪声。检查接线的时候确认DATA接到了从机芯片的PDM DATA输入引脚上不要接反。4. 时隙分配与音频路由配置4.1 A2B上行时隙的分配逻辑A2B总线的时隙分配是主控统一管理的。上行时隙从机到主控和下行时隙主控到从机是分开的各32个。数字麦克风的数据走上行时隙。在SigmaStudio的A2B Master配置里有一个“Slot Allocation”或者“Stream Configuration”的界面这里可以看到所有上行和下行时隙的分配情况。默认情况下Discovery之后SigmaStudio会自动给每个从机分配一些时隙但自动分配的不一定符合你的需求。你要做的是找到从机对应的上行时隙区域把麦克风数据要用的时隙编号记下来。比如从机1的麦克风数据放在上行时隙4那就在主控的I2S输出映射里把上行时隙4映射到I2S的某个通道。这里有个容易混淆的地方A2B的时隙编号是从0开始还是从1开始SigmaStudio界面上通常是从0开始但有些文档里是从1开始。我建议你以SigmaStudio界面上的编号为准因为最终配置是它下发的。4.2 主控I2S/TDM输出映射主控收到A2B上行时隙的数据后要通过I2S或TDM接口输出给外部SoC。AD2428WD-EVB上通常有I2S接口引出可以接到示波器或者逻辑分析仪上抓数据。在SigmaStudio里找到主控的“I2S/TDM”配置模块这里要设置输出格式I2S还是TDM。I2S是2通道TDM可以多通道。通道映射把A2B上行时隙映射到I2S/TDM的通道。比如上行时隙4映射到I2S的左声道上行时隙5映射到右声道。时钟配置I2S的BCLK和LRCLK分频比要和外部设备的采样率匹配。映射的时候注意A2B上行时隙里的数据是PCM格式位深要和I2S配置一致。如果A2B里是16bitI2S也配16bit如果A2B里是24bitI2S也要配24bit。位深不匹配会导致数据错位听起来像噪声。提示如果你不确定映射对不对可以先用逻辑分析仪抓I2S的波形。正常的I2S波形在LRCLK跳变后DATA线上应该有规律的数据变化。如果DATA线一直不变说明映射没生效或者时隙里没数据。4.3 时隙映射的验证方法配置完之后怎么验证时隙映射是对的我常用的方法是在SigmaStudio里打开“Bus Monitor”或者“Signal Probe”功能直接看A2B总线上的数据。如果上行时隙4里有数据而且数据的波形和麦克风采集的音频一致比如你对着麦克风说话波形跟着动那时隙分配就是对的。如果Bus Monitor里看不到数据或者数据是全0回去检查从机的PDM配置和时隙放置位置。如果Bus Monitor里有数据但I2S输出没数据检查主控的I2S映射。还有一个验证方法用SigmaStudio的“Readback”功能读从机的寄存器确认PDM模块的状态位是不是正常。如果PDM模块报错比如时钟锁定失败那就要回去检查PDM时钟分频。5. 常见问题排查与实战避坑5.1 Discovery失败与总线连通性排查Discovery失败是最常见的问题表现是SigmaStudio里点Discovery之后拓扑图里只有主控没有从机。排查顺序如下线缆确认A2B线缆接对了主控的OUT接从机的IN从机的OUT接主控的IN如果是环网或者不接菊花链末端。线缆要用双绞线不要用普通的杜邦线信号完整性会出问题。终端电阻菊花链末端要接终端电阻通常是100欧姆。评估板上有跳线帽看丝印确认。供电从板要供电AD2428WC-EVB通常通过A2B总线供电Bus Power但有些配置需要外部供电。确认从板的电源指示灯亮。Discovery模式主控要处于Discovery模式才能扫描从机。SigmaStudio里点Discovery的时候主控会自动进入Discovery模式但如果之前配置过其他模式可能需要先复位。我遇到过最坑的一次是线缆的线序错了A2B的差分信号对线序有要求接反了就是Discovery不到。后来用万用表量了一下通断发现两根线接反了换过来就好了。5.2 麦克风无声的逐级排查法如果Discovery正常但麦克风没声音按下面的顺序逐级排查排查层级检查内容工具硬件层麦克风供电、使能引脚、DATA接线万用表时钟层PDM时钟频率、分频比示波器配置层PDM模块参数、时隙放置SigmaStudio路由层上行时隙分配、I2S映射SigmaStudio Bus Monitor输出层I2S波形、外部设备配置逻辑分析仪先从硬件层开始确认麦克风有电、使能拉高、DATA有信号。然后看时钟层用示波器量PDM CLK确认频率是3.072MHz48kHz采样率下。如果时钟不对回去改分频比。配置层和路由层在SigmaStudio里检查重点看时隙编号有没有对上。输出层用逻辑分析仪抓I2S确认有数据输出。5.3 噪声与采样率不匹配问题如果麦克风有声音但全是噪声或者声音变调大概率是采样率不匹配。A2B的采样率、PDM的采样率、I2S的采样率这三个必须一致。我遇到过一种情况主控设的48kHz从机PDM分频算出来是44.1kHz结果声音听起来像慢放。后来把分频比从16改成17.4实际要取整改成17或18采样率就接近48kHz了但会有微小误差。正确的做法是重新算分频比让PDM采样率精确等于48kHz。还有一种噪声是直流偏置PDM麦克风输出的PDM信号如果占空比不是50%抽取滤波后会有直流分量。这个通常需要在SigmaStudio里配置高通滤波器把直流滤掉。5.4 多从机级联时的注意事项如果你接多个从机比如两个AD2428WC-EVB级联要注意每个从机的时隙分配不能冲突从机1用上行时隙4从机2就用上行时隙5。总线供电要算总功耗多个从机加起来的电流不能超过主控的供电能力。Discovery的时候从机是按级联顺序识别的拓扑图里会显示链路的顺序配置的时候别搞混了。级联的时候终端电阻只在最后一个从机上使能中间的从机不使能。这个在评估板的跳线帽上设置。6. 配置完成后的验证与固化6.1 用SigmaStudio导出配置文件配置完成后SigmaStudio可以把整个工程的配置导出成一个二进制文件或者头文件里面包含了所有寄存器的值。这个文件可以烧录到主控的EEPROM里让主控上电后自动加载配置不需要每次都连PC。导出的时候注意SigmaStudio会生成一个“A2B Configuration”文件和一个“SigmaDSP Program”文件如果有用到SigmaDSP的话。A2B配置文件里包含了主控和从机的所有寄存器设置烧录到EEPROM后主控上电会自动执行Discovery和配置。6.2 上电自启动的配置方法要让系统上电自启动需要把配置文件烧录到主控板的EEPROM里。AD2428WD-EVB上通常有一个EEPROM插座把配置文件烧进去然后设置主控的启动模式为“EEPROM Boot”。烧录工具用ADI提供的A2B EEPROM烧录工具或者用SigmaStudio自带的烧录功能。烧录完成后断开USB重新上电用逻辑分析仪抓I2S确认有数据输出。注意烧录之前先备份原来的EEPROM内容万一配置错了还能恢复。6.3 实测数据与性能评估配置完成后我实测了一下AD2428WD-EVB加AD2428WC-EVB加ADMP521麦克风的方案关键指标如下指标实测值备注采样率48kHz与配置一致位深16bitPDM抽取比64信噪比约61dBADMP521典型值延迟约1.2ms从麦克风到I2S输出功耗从板约120mW含麦克风延迟这个指标对车载语音交互很重要1.2ms的延迟在可接受范围内。如果延迟要求更严可以降低抽取比但信噪比会下降。7. 个人实操体会与后续扩展这套配置流程我前后调了大概两周踩过的坑主要集中在PDM时钟分频和时隙映射上。最开始我以为SigmaStudio会自动算分频比结果填了个默认值麦克风一直没声音后来用示波器量PDM CLK才发现频率不对。时隙映射也是主控和从机的时隙编号没对上Bus Monitor里能看到数据但I2S输出就是没有。如果你要扩展成麦克风阵列比如4个麦克风思路是一样的每个麦克风占一个上行时隙PDM模块配置成多通道时隙依次分配。注意总时隙数不要超过32个超了就要降低采样率或者减少麦克风数量。后续如果要做波束成形或者降噪A2B传上来的多通道PCM数据可以直接送给SoC或者DSP处理。SigmaStudio里也可以加SigmaDSP模块在A2B总线上直接做简单的滤波和增益减轻后端处理器的负担。最后分享一个小技巧调试的时候先在SigmaStudio里用“Signal Generator”模块生成一个正弦波放到上行时隙里确认整条链路通了再换成麦克风数据。这样可以把麦克风本身的问题和链路配置的问题分开排查起来快很多。
返回列表