PCM186x-Q1音频ADC:从硬件控制到DSP编程的实战指南

PCM186x-Q1音频ADC:从硬件控制到DSP编程的实战指南 1. 项目概述从模拟到数字的桥梁PCM186x-Q1如何重塑音频采集在任何一个数字音频系统的起点你都会遇到一个关键的“翻译官”——音频模数转换器ADC。它的任务看似简单把麦克风、乐器、唱机传来的连续变化的模拟电压波形变成一串串处理器能理解的0和1。但就是这个“翻译”过程决定了最终声音的保真度、动态范围和细节表现。无论是车载娱乐系统里清晰的人声导航专业录音棚里捕捉的细腻弦乐还是智能音箱中精准的语音唤醒其底层都离不开一颗高性能、高可靠性的音频ADC。从业十多年我经手过不少ADC芯片从早期的多芯片方案到如今高度集成的单芯片解决方案一个深刻的体会是选型不仅仅是看信噪比SNR和总谐波失真THD这几个参数。在真实的产品设计中易用性、功耗管理和系统集成度往往更能决定项目的成败。这也是为什么当我深入研究德州仪器TI的PCM186x-Q1系列时感觉它像是一位“六边形战士”。这个系列不仅提供了从2到4通道的灵活选择更在控制逻辑、电源管理和接口扩展上做了大量文章把许多需要外围电路实现的功能都集成到了芯片内部。这个系列包含PCM1860/61硬件控制和PCM1862/63/64/65软件控制等多个型号。硬件控制型号通过几个模式引脚MDx的上拉下拉来配置适合快速启动、对MCU资源要求极低的场景而软件控制型号则通过标准的I2C或SPI总线进行深度配置让你能精细调整滤波器、增益、混合器甚至DSP系数实现定制化的音频处理流水线。更值得一提的是其**Energysense能量感知和ControlSense控制感知**功能它们让芯片从被动采集变成了“有意识的监听者”能在无信号时自动进入微安级的睡眠模式并在信号恢复或控制电位器变化时立即唤醒这对于电池供电或始终在线的低功耗设备来说是革命性的。本文将带你深入PCM186x-Q1的内核不仅解读数据手册上的关键参数更会结合我实际调试中的经验详细拆解其硬件与软件控制模式的取舍、四种电源模式Active, Idle, Sleep, Standby的实战切换逻辑、SPI/I2C接口的配置陷阱以及如何利用TDM接口搭建多通道采集系统。无论你是正在为车载信息娱乐系统选型的工程师还是致力于打造下一代智能家居音频产品的开发者相信这些从数据手册和项目实战中萃取的细节都能为你提供直接的参考。2. 核心架构与功能模式深度解析要驾驭一颗复杂的芯片首先要理解它的“人格分裂”——PCM186x-Q1系列根据控制方式分成了泾渭分明的两大阵营。这种设计背后是TI对差异化应用场景的深刻理解。2.1 硬件控制 vs. 软件控制两种哲学的选择硬件控制型号PCM1860-Q1, PCM1861-Q1的设计哲学是“简单即可靠”。它们没有复杂的寄存器地图所有关键配置如采样率、主从模式、音频数据格式I2S或左对齐、数字滤波器类型经典FIR或低延迟IIR甚至各通道的PGA增益都通过MD0至MD6这七个模式引脚的电平状态来决定。上电时芯片锁存这些引脚的状态完成初始化。INT引脚复用为GPIO3在这里扮演了双重角色在正常工作时它作为输出向主机MCU报告Energysense或ControlSense中断当需要让芯片进入待机Standby模式时主机MCU需要将它配置为输出并驱动为高电平。实操心得硬件控制的“静态”与“动态”硬件控制并非一劳永逸。虽然基本配置是静态的但那个复用的INT引脚是动态交互的关键。在设计原理图时必须确保MCU对应的GPIO能够被配置为开漏输出且带上拉或者具有双向I/O能力。我曾在一个项目中因为MCU的GPIO模式配置错误导致无法拉高INT引脚芯片永远无法进入待机模式白白浪费了数毫安的电流。软件控制型号PCM1862-Q1, PCM1863-Q1, PCM1864-Q1, PCM1865-Q1则代表了“极致灵活”。它们通过I2C或SPI总线暴露了上百个可读写寄存器让你能实时调整几乎每一个参数。选择I2C还是SPI由MD0引脚决定拉低或浮空为I2C模式拉高则为SPI模式。在I2C模式下MD1引脚用于设置从机地址低电平为0x94高电平为0x96这意味着一条总线上最多可以挂载两颗芯片。而在SPI模式下MD1引脚就是经典的片选信号/CS或/MS。为什么选择软件控制除了灵活性更重要的是能启用芯片内置的两个固定功能DSP。这两个DSP允许你通过写入系数自定义每个通道的滤波器如低通、高通和4个立体声混合器的增益。这意味着你可以在芯片内部完成简单的音效处理或路由减轻后端主处理器的负担。这对于通道数较多、需要复杂混音的车载音频系统或小型调音台来说价值巨大。2.2 四大电源模式精细化的功耗管理艺术PCM186x-Q1的电源管理不是简单的“开”和“关”而是一个有四个档位的“功率旋钮”。理解每个模式关断了什么、保留了什么是设计低功耗系统的关键。1. 活动模式Active Mode全功能全速运行。模拟前端PGA、ADC、参考电压、数字核心、时钟系统振荡器、PLL全部上电。这是性能最高也是功耗最高的模式。2. 空闲模式Idle Mode数字音频输出被静音但模拟前端PGA、ADC仍然保持供电。这个模式非常实用比如在播放静音段或短暂暂停时你可以让芯片进入Idle模式。这样当需要立即恢复播放时模拟电路已经稳定避免了从完全断电状态恢复带来的“噗噗”声和建立时间延迟。切换方式对于硬件控制型号就是拉高INT引脚对于软件型号则通过写PWRDN_CTRL寄存器。3. 睡眠模式Sleep Mode这是Energysense功能的主场。主ADC关闭功耗大幅降低但芯片会周期性地唤醒辅助ADC和PGA去扫描指定的输入通道检测是否有音频信号出现即“能量”。如果检测到信号超过预设的“唤醒阈值”芯片就会产生中断并自动或由主机控制切换回Active模式。进入方式有两种软件写入睡眠命令或者当芯片配置为I2S从模式时主机直接停止位时钟BCK和帧时钟LRCK。后者对于由主处理器统一管理时钟的系统来说尤其方便。4. 待机模式Standby Mode最低功耗模式。只有控制端口I2C/SPI和极少量逻辑电路保持上电功耗可低至微安级。芯片无法处理音频但主机仍然可以通过控制总线对其进行读写操作。这是系统长时间待机时的理想状态。为了更直观地对比我将关键模块在不同模式下的状态整理如下功能模块活动模式 (Active)空闲模式 (Idle)睡眠模式 (Sleep)待机模式 (Standby)可编程增益放大器 (PGA)开启开启开启关闭主ADC开启开启关闭关闭ADC参考电压开启开启关闭关闭共模反馈 (CMBF)开启开启开启开启参考电压开启开启开启开启麦克风偏置开启开启关闭关闭辅助ADC PGA开启开启开启关闭辅助PGA开启开启开启关闭低压差稳压器 (LDO)开启开启开启开启振荡器开启开启开启开启时钟停止检测开启开启开启开启锁相环 (PLL)开启开启关闭关闭数字核心100% 开启关闭约20%开启约5%开启仅控制端口避坑指南模式切换的时序与副作用切换电源模式不是瞬间完成的。特别是从Sleep或Standby模式唤醒到Active模式模拟电路和时钟需要重新建立稳定。数据手册可能不会明确告诉你这个时间但根据我的实测从Standby模式通过I2C命令唤醒到输出稳定音频通常需要10-20ms。如果你的应用对唤醒延迟有严格要求如语音唤醒务必在系统设计时预留这段稳定时间或者考虑使用Idle模式作为主要低功耗状态。此外在切换模式前后最好对音频数据输出执行静音操作以避免产生爆破音。2.3 绕过内部LDO为极致功耗优化PCM186x-Q1内部集成了一个LDO允许你仅用一颗3.3V电源供电这简化了电源设计。但如果你追求极致的功耗可以绕过这个LDO。方法是从外部直接提供1.8V电压给IOVDD引脚和LDO引脚注意是给LDO引脚供电而不是让它输出。这样做有两个关键限制和一项必须遵守的规则时钟频率限制当IOVDD为1.8V时BCK和DATA线的最高驱动频率被限制在25MHz。这直接限制了TDM模式下的最高采样率。计算一下对于最常见的32位帧左右声道各16位BCK频率 采样率 * 位数 * 通道数。25MHz的BCK上限意味着在TDM模式下采样率最高只能支持到约96kHz25M / (32*8) ≈ 97.6k。对于立体声I2S模式则可以支持到更高的采样率。电压必须匹配如果你选择外部1.8V供电那么IOVDD和LDO引脚必须同时连接到这个1.8V电源上。绝不能一个接1.8V另一个接3.3V或悬空否则可能导致闩锁效应或损坏芯片。3. 控制接口与寄存器编程实战软件控制型号的强大功能都通过I2C或SPI接口背后的寄存器来实现。这部分是驱动开发的核心也是最容易出错的地方。3.1 SPI接口高速配置的细节当MD0引脚拉高芯片进入SPI模式。这是一个标准的4线同步串行接口MS, MC, MOSI, MISO与音频主时钟异步这意味着你可以在任何时候配置芯片而不必担心干扰音频数据流。通信帧格式是固定的16位其结构至关重要Bit 15 (MSB)读写控制位。0代表写操作1代表读操作。Bit 14-87位寄存器索引地址即IDX[6:0]。Bit 7-08位数据D[7:0]。这里有一个关键细节一次SPI事务只能读写一个8位的寄存器。PCM186x-Q1的寄存器是8位宽的。图48和图49的时序图清晰地展示了这个过程片选MS拉低后在时钟MC的下降沿主机通过MOSI线依次送出16位控制字。如果是读操作从第8个时钟周期开始芯片会将目标寄存器的数据放到MISO线上如果是写操作则在第16个时钟周期结束后数据被锁存进寄存器。调试经验SPI的MISO引脚复用数据手册提到如果不需要读回数据可以将MISO引脚配置为GPIO1。这个功能很实用可以节省一个MCU的输入引脚。但请注意这个配置是通过寄存器控制的GPIO1_CTRL而配置这个寄存器本身又需要通过SPI写入。这就成了一个“先有鸡还是先有蛋”的问题。稳妥的做法是在硬件设计阶段始终将MISO引脚连接到MCU的SPI输入引脚。在初始化序列中先通过SPI此时MISO是功能引脚配置好GPIO1的功能之后如果你确定不再需要读操作再从软件层面忽略MCU这个引脚的数据即可。切勿在物理上断开连接否则初始配置都无法完成。3.2 I2C接口广泛兼容的协议当MD0拉低或浮空芯片进入I2C从机模式支持标准模式和快速模式。引脚功能变为SDA数据、SCL时钟、AD地址选择。其7位从机地址固定为100101X其中最低位X由AD引脚电平决定AD0时地址为0x94二进制1001010AD1时地址为0x96二进制1001011。I2C的读写协议是标准的。写操作Start 地址写 Ack 寄存器地址 Ack 数据 Ack Stop。读操作稍复杂先发送一个“哑写”来设置寄存器指针Start 地址写 Ack 寄存器地址 Ack然后发送重复起始条件Repeated Start 地址读 Ack 读取数据 Nack Stop。I2C模式一个巨大的优势是控制端口可以在系统没有任何其他时钟如主时钟SCKI、位时钟BCK的情况下工作。这意味着你可以在系统上电但音频时钟还未就绪时就通过I2C对芯片进行初始化配置这对于复杂的启动序列非常有用。3.3 Energysense与ControlSense智能音频检测引擎这是PCM186x-Q1系列最智能的功能也是实现超低功耗音频待机的关键。很多人容易混淆这两者其实它们分工明确Energysense能量感知用于检测主音频通道上是否有信号出现。你可以为每个输入通道如1L, 1R, 2L, 2R设置一个“信号丢失阈值”Loss Threshold和一个“恢复阈值”Resume Threshold。当信号低于丢失阈值一段时间芯片可以产生中断提示主机“可以进入Sleep模式了”。当信号高于恢复阈值芯片再次产生中断提示“有声音了快唤醒”。ControlSense控制感知用于检测辅助ADC输入通常连接到电位器或传感器的直流电压变化。比如你可以将一个音量旋钮连接到辅助ADC输入当用户转动旋钮时ControlSense检测到电压变化并产生中断主机读取电压值然后相应地调整系统音量或其它参数。这个功能在Sleep模式下依然有效这意味着用户扭动旋钮可以直接唤醒整个系统。配置与使用流程以Energysense为例基础配置通过SIGDET_CH_MODE寄存器将需要监控的音频通道如1L, 1R配置为Energysense模式。设置阈值通过写入DSP系数存储器后面会详述设置Loss_threshold和Resume_threshold。例如设置为-50dB意味着当信号低于-50dBFS满量程分贝时判定为丢失。使能中断在INT_EN寄存器中使能对应的Energysense中断位。中断处理当中断发生读取INT_STAT寄存器确定中断源然后读取SIGDET_STAT寄存器查看具体是哪个通道触发了检测。清除中断这是一个容易出错的步骤。不能简单地写INT_STAT。标准流程是先临时将丢失阈值改成一个极高的值如110dB相当于噪声 floor然后向SIGDET_STAT寄存器先后写入0xFF和0x00最后将阈值改回原值并重新使能中断。这个过程是为了确保清除芯片内部的中断锁存状态。3.4 DSP系数编程解锁芯片的音频处理能力软件控制型号内置了两个固定功能DSP可用于混音和滤波。所有DSP系数混音器增益、滤波器系数都是24位定点数格式为4.204位整数20位小数最高位为符号位。这意味着其表示范围为[-8, 8 - 2^-20]增益系数1.0对应的十六进制值是0x100000。编程这些系数是间接的并且有一个关键的“双写”机制这是驱动开发中最容易踩坑的地方之一。系数并非直接写入DSP而是先写入Page 1的一组特定映射寄存器如MIX1_CH1L地址0x00。芯片内部有一个内存仲裁器它会在DSP每处理完一个音频样本的间隙自动将这些映射寄存器里的数据搬运到真正的DSP内存中。关键步骤切换到寄存器Page 1。执行两次对任意寄存器的“哑写”操作例如向地址0x01写0x00。这两次写操作的作用是刷新仲裁器状态确保接下来你能看到最新的“写忙”状态。读取0x01寄存器。如果值为0x00说明仲裁器空闲可以继续否则重复步骤2。向目标系数地址寄存器如0x02代表Loss_threshold的地址0x2C写入系数的高、中、低字节。向0x01寄存器写入0x01WREQ1触发仲裁器执行一次从映射寄存器到DSP内存的写入操作。重要警告这个写操作只有在DSP有时钟来自PLL或外部主时钟运行时才能成功。如果芯片是时钟从模式且主时钟停止了DSP也会停止此时写系数会失败。因此在更改滤波器系数如Biquad系数时必须先静音音频输出等所有系数更新完毕后再取消静音否则可能因系数不同步导致滤波器不稳定输出刺耳的噪声。4. 系统设计、电路实现与调试要点掌握了内核原理和编程方法我们最终要将芯片用起来。这部分结合原理图和PCB布局聊聊如何让它发挥最佳性能。4.1 模拟前端设计不止是接个电容输入电路直接决定ADC能“听到”多好的声音。数据手册提供了单端和差分输入的基本电路。对于单端输入图60最简单的就是一个10μF的隔直电容串联一个100Ω电阻到VINxx引脚。这个100Ω电阻和引脚内部的寄生电容构成了一个一阶低通滤波器其截止频率约为1/(2πRC)。假设寄生电容为10pF截止频率高达160MHz这显然不是用于抗混叠的。它的主要作用是限流防止输入信号过大时电流灌入芯片内部的ESD二极管而将其烧毁绝对最大电流约5mA。对于需要严肃抗混叠滤波的应用图61可以在100Ω电阻后面靠近芯片引脚处再并联一个0.01μF的薄膜电容到模拟地AGND。这样构成了一个截止频率约160kHz的RC低通滤波器可以有效滤除音频带宽如20kHz以上的高频噪声和射频干扰。这个电容必须使用高品质的C0G/NP0陶瓷电容或薄膜电容并且布局上要尽可能贴近芯片的输入引脚和AGND引脚回流路径最短。对于差分输入图62, 63设计原则类似但多了一个要求两条通路的匹配性。串联的47Ω电阻或其它阻值的阻值要尽可能一致最好使用1%精度的电阻否则会降低电路的共模抑制比CMRR让外部共模噪声更容易混入信号中。差分输入能更好地抑制来自电源、地线或空间的共模噪声是高质量音频采集的首选。关于麦克风偏置如果使用驻极体麦克风芯片提供的Mic Bias引脚通常为2.2V左右是非常方便的。只需通过一个2.2kΩ的电阻连接到麦克风再配合隔直电容即可。注意麦克风输出是单端的通常连接到芯片的差分输入正端而负端需要通过一个相同大小的电容接地以形成伪差分输入同样能获得一定的噪声抑制能力。4.2 时钟方案选择系统稳定的基石PCM186x-Q1支持三种主时钟源外部CMOS时钟接SCKI引脚最直接信号质量好。确保时钟源的抖动Jitter足够低因为时钟抖动会直接转化为ADC输出信号的底噪。外部晶体接XI和XO引脚成本低集成度高。需要在XI和XO引脚到地之间接负载电容容值需参考晶体规格书通常为12-22pF。布局时晶体必须尽可能靠近芯片走线短且对称下面不要走其他信号线。使用内部PLL从非音频相关时钟生成这是最灵活也最复杂的方式。例如系统只有一个12MHz的USB时钟你需要音频用的44.1kHz或48kHz系列采样率。这时必须启用并正确配置内部PLL。配置PLL需要计算并设置PLL_P、PLL_J、PLL_D等分频器和倍频器系数计算公式在数据手册的“Software-Controlled Devices Manual PLL Calculation”部分有详细说明。一个常见错误是PLL无法锁定表现为音频数据杂乱或无输出。此时除了检查系数还要确保输入到PLL的参考时钟PLL_CLKIN频率在数据手册规定的范围内例如2-50MHz。4.3 TDM多设备级联扩展通道数的利器当需要超过4个通道时例如8通道车载麦克风阵列可以使用两颗软件控制型号的PCM186x-Q1以TDM模式级联。典型配置如下主设备负责产生主时钟MCLK、位时钟BCK和帧时钟LRCK。它通常连接晶体或外部主时钟源。其TDM偏移寄存器I2S_TX_OFFSET设置为0占据TDM帧的前4个时隙例如时隙0-3对应通道1-4。从设备将其BCK和LRCK引脚连接到主设备输出的对应时钟上并配置为I2S从模式。它的I2S_TX_OFFSET寄存器需要设置为4如果主设备占用了0-3这样它的数据就会在TDM帧的后4个时隙时隙4-7输出。从设备可以不接独立的主时钟它利用内部的PLL从BCK和LRCK恢复出所需的系统时钟。数据线合并两颗芯片的DOUT引脚可以简单地通过一个与门或二极管合并然后送到处理器。因为TDM协议中每个设备只在自己分配的时隙内驱动数据线其他时隙为高阻态所以不会冲突。控制总线两颗芯片的I2C或SPI总线可以并联但必须确保它们的设备地址不同。对于I2C通过设置不同的AD引脚电平来实现一个接低一个接高。对于SPI则需要MCU提供两个独立的片选信号。4.4 电源与PCB布局决定性能的“最后一公里”即使电路和代码都正确糟糕的布局也可能让性能大打折扣。电源去耦数据手册推荐的10μF大电容和2.2μF/0.1μF小电容组合是经过验证的。AVDD模拟电源和DVDD数字电源的去耦电容必须各自紧贴芯片的相应电源引脚放置并且过孔直接打到电源平面或地平面。模拟和数字地AGND, DGND通常在芯片底部通过一个星型连接点或磁珠单点连接确保高频数字噪声不会串扰到敏感的模拟地网络上。时钟与高速数字线BCK、LRCK、DOUT以及SCKI/XI/XO属于高速数字信号。走线应尽量短避免过长或靠近模拟输入走线。如果可能在它们周围布上地线进行屏蔽。连接到晶体的两条线应等长、对称并用地线包围。模拟输入走线这是最敏感的部分。走线应尽可能短并用地平面作为参考和屏蔽。绝对要避免与数字时钟线、数据线平行走线防止耦合噪声。差分输入对的两条线应保持等长、等距以维持良好的共模抑制。5. 常见问题排查与驱动开发心得理论终须实践检验。下面是我在多个项目中调试PCM186x-Q1时遇到的一些典型问题及解决方法希望能帮你少走弯路。5.1 问题排查速查表现象可能原因排查步骤与解决方法无音频数据输出1. 电源或时钟未就绪。2. 芯片处于非Active模式Sleep, Standby。3. 音频接口格式配置错误。4. 主从模式配置错误。1. 测量AVDD、DVDD、IOVDD电压是否正常3.3V或1.8V。用示波器检查SCKI/XI主时钟、BCK、LRCK是否存在且频率正确。2. 检查INT引脚电平硬件控制或PWRDN_CTRL寄存器软件控制确保芯片处于Active模式。3. 检查MD4引脚硬件或I2S_FMT寄存器软件确认配置为I2S或左对齐并与处理器端匹配。4. 确认主从模式若芯片提供BCK/LRCK则为Master若接收外部BCK/LRCK则为Slave。检查CLK_SEL相关配置。音频输出有噪声或失真1. 模拟输入过载或信号质量差。2. 电源噪声大。3. 时钟抖动过大。4. PCB布局不佳数字噪声耦合。1. 用示波器检查输入信号幅度确保在PGA增益调整后不超过VREF通常为2.25Vpp差分。检查输入耦合电容和滤波电路。2. 用示波器AC耦合档观察电源引脚上的纹波应小于10mVpp。加强电源滤波检查去耦电容是否焊接良好。3. 检查主时钟源质量使用低抖动时钟发生器或晶体。4. 复查PCB确保模拟和数字部分隔离良好地平面分割合理。I2C/SPI通信失败1. 上拉电阻缺失或阻值不当。2. 总线地址错误。3. 时序不满足。4. 芯片未正确上电或复位。1. I2C总线必须接上拉电阻通常4.7kΩ。SPI的片选信号通常也需要上拉。2. 确认AD引脚电平与软件中设置的I2C地址匹配。确认SPI片选信号是否正确。3. 用逻辑分析仪抓取总线波形检查起始、停止条件、数据建立/保持时间是否符合芯片要求见数据手册时序参数。4. 确保在通信前芯片电源稳定并已完成上电复位通常等待1ms。Energysense/ControlSense中断不触发1. 中断未使能。2. 阈值设置不合理。3. 输入信号未达到阈值。4. 中断标志未正确清除。1. 检查INT_EN寄存器确保对应通道的Energysense或ControlSense中断位已置1。2. 检查写入DSP系数存储器的Loss_threshold和Resume_threshold值是否正确注意4.20格式转换。阈值不宜设得过低以免被噪声误触发。3. 测量输入信号的实际电平确认其超过/低于所设阈值。4.严格按照数据手册流程清除中断先改阈值再写SIGDET_STAT(0xFF, 0x00)最后恢复阈值并重新使能中断。从低功耗模式唤醒后音频异常1. 时钟未稳定。2. 模拟电路未稳定。3. 寄存器配置在唤醒后部分丢失。1. 从Sleep/Standby唤醒后等待足够时间建议10-20ms让内部时钟尤其是PLL重新锁定稳定再开始发送/接收音频数据。2. 唤醒后先让芯片处于Idle模式模拟电路供电几毫秒再切换到Active模式可以减少“噗”声。3. 检查关键音频配置寄存器如I2S_FMT,PGA_GAIN在唤醒后是否保持原值。某些极端情况下可能需要重新初始化部分寄存器。5.2 驱动开发与初始化序列建议基于软件控制型号一个稳健的初始化序列应该遵循以下步骤硬件复位与电源稳定确保供电稳定后如果硬件有复位引脚拉低至少1ms再释放。否则等待至少10ms让芯片内部上电复位完成。基础通信测试尝试读取一个已知的只读寄存器如设备ID寄存器如果存在或INT_STAT寄存器。这能最快验证I2C/SPI通信是否正常。时钟配置根据你的时钟源晶体、外部MCLK、PLL配置CLK_SEL、PLL_P/J/D等寄存器。务必在配置后检查CLK_STATUS等相关寄存器确认时钟已锁定且无错误。音频接口配置设置I2S_FMT数据格式、I2S_TX_OFFSETTDM偏移、采样率等。模拟输入配置设置PGA_GAIN、输入通道选择、单端/差分模式等。DSP功能配置可选如果需要混音或滤波按3.4节的流程写入DSP系数。在写入滤波器系数期间务必先静音输出。使能中断配置INT_EN寄存器使能需要的Energysense、ControlSense或其他中断。退出静音启动音频流最后将音频输出通道取消静音并开始提供或接收音频时钟和数据。最后一点个人体会PCM186x-Q1是一颗功能非常丰富的芯片不要试图在第一天就搞懂所有寄存器。最好的方法是分模块验证先让最基本的I2S音频采集工作起来然后测试Energysense的自动睡眠唤醒再尝试ControlSense控制最后如果有需求再深入研究DSP混音和滤波。利用好芯片的状态寄存器Page 0, 0x72-0x75, 0x78它们能告诉你当前的采样率、时钟状态、电源状态是调试时最得力的助手。这颗芯片的深度足以支撑起从消费级到车规级各种苛刻的音频应用花时间吃透它绝对是值得的。