1. 背景:为什么PDM麦克风需要LR/Data Select引脚
数字MEMS麦克风常见的PDM接口通常包括CLK、DATA、VDD、GND以及LR或Data Select引脚。PDM输出不是I2S这类分帧PCM数据,而是高速1-bit bitstream。接收端通过数字抽取滤波器把bit density转换成音频采样值。
LR/Data Select的主要作用不是改变声学通道本身,而是规定这颗麦克风在共享DATA总线时占用哪一个半时钟周期。这样两颗麦克风可以共用一根CLK和一根DATA:一颗麦在一个半周期驱动DATA,另一颗麦在另一个半周期驱动DATA。
因此,LR接GND或VDD本质上是在选择数字总线上的slot。它决定DATA何时被麦克风驱动、何时被接收端采样、何时释放为High-Z。
2. Datasheet表格的准确含义
| Data Select Pin状态 | 麦克风驱动DATA的时刻 | 接收端采样DATA的时刻 | DATA输出释放为High-Z的时刻 |
|---|---|---|---|
| Connected to VDD | Rising clock edge之后 | Falling clock edge | Falling clock edge之后 |
| Connected to GND | Falling clock edge之后 | Rising clock edge | Rising clock edge之后 |
这张表最关键的地方是区分三个动作:第一,麦克风什么时候开始驱动DATA;第二,接收端什么时候读取DATA;第三,麦克风什么时候释放DATA线。很多沟通误差来自把这三个动作都笼统地说成"上升沿"或"下降沿"。
对于LR=GND,表格并不是说麦克风在rising edge才输出数据。恰恰相反,它说明麦克风在falling edge之后已经开始驱动DATA,到下一个rising edge时,DATA已经经过半个周期的建立时间,接收端可以在这个rising edge安全地锁存该bit。
3. LR接GND的完整时序
当Data Select Pin连接到GND时,一个PDM bit的数字接口流程可以写成下面的顺序:
- CLK falling edge到来。
- 麦克风在falling edge之后驱动新的DATA bit。
- DATA经过内部输出延迟和板级传播延迟后稳定。
- 接收端在下一个rising edge采样DATA。
- rising edge之后麦克风释放DATA,输出进入High-Z。
这就是"LR接GND时接收端在上升沿采样"的原因:不是因为上升沿本身有特殊声学意义,而是因为该bit在前一个falling edge后已经被放到DATA线上,到rising edge时满足接收端的setup/hold要求。
3.5 两种模式对比时序图
下面用Mermaid时序图直观展示LR=GND和LR=VDD两种模式下,CLK、DATA驱动、DATA采样、DATA High-Z四个信号在一个完整时钟周期内的时序关系。
timeline title PDM时序:LR=GND vs LR=VDD(一个完整CLK周期) section CLK CLK rising edge : 时钟上升沿 CLK falling edge : 时钟下降沿 section LR=GND模式 Falling edge之后 : 麦克风驱动DATA(输出有效bit) Rising edge : 接收端采样DATA(锁存该bit) Rising edge之后 : 麦克风释放DATA → High-Z section LR=VDD模式 Rising edge之后 : 麦克风驱动DATA(输出有效bit) Falling edge : 接收端采样DATA(锁存该bit) Falling edge之后 : 麦克风释放DATA → High-Z section DATA线状态(双麦共享场景) Falling-to-Rising半周期 : GND麦克风驱动DATA Rising-to-Falling半周期 : VDD麦克风驱动DATA 两个半周期之间 : DATA线交替出现两个麦克风的PDM bit时序图说明:
- LR=GND:CLK falling edge → 麦克风驱动DATA → DATA建立 → CLK rising edge → 接收端采样 → rising edge后释放为High-Z。
- LR=VDD:CLK rising edge → 麦克风驱动DATA → DATA建立 → CLK falling edge → 接收端采样 → falling edge后释放为High-Z。
- 两种模式各占用半个CLK周期,交替驱动时DATA线不会冲突。
- 关键边沿标注:驱动边沿(麦克风开始输出)、采样边沿(接收端锁存)、释放边沿(进入High-Z)三者明确区分。
4. LR接VDD的互补时序
当Data Select Pin连接到VDD时,该麦克风占用相反的半个时钟周期。它在rising edge之后驱动DATA,接收端在下一个falling edge采样,随后在falling edge之后释放DATA。
VDD与GND的slot互补,这样两颗麦可以共享同一根DATA线:VDD麦克风占用rising-to-falling半周期,GND麦克风占用falling-to-rising半周期。两者交替驱动,避免同时驱动同一条DATA线。
5. 为什么不能在"刚驱动DATA的同一个边沿"采样
数字信号不是理想瞬间变化的。麦克风从时钟边沿触发输出,到DATA引脚真正达到稳定高/低电平,中间会经历内部latch延迟、输出buffer延迟、pad延迟、PCB走线延迟以及接收端输入延迟。
因此,datasheet通常会把"Data driven after某边沿"和"Data sampled by receiver on另一个边沿"分开描述。这样做可以把半个时钟周期留给DATA建立。例如PDM clock为3.072 MHz时,周期约为325.5 ns,半周期约为162.8 ns。这个半周期就是接口时序的主要margin。
如果接收端在DATA正在切换或尚未稳定的时候读取,就可能读到错误bit、浮空状态或另一个声道的数据。这类错误在音频上可能表现为灵敏度偏差、噪声异常、左右声道错位、pop/click、失真增大或不稳定的SNR。
6. High-Z的作用:让两颗麦克风共享一根DATA
High-Z是高阻态,可以理解为麦克风临时把自己的DATA输出从总线上断开。对于共享DATA的双麦结构,High-Z非常关键。
假设一颗麦克风LR=VDD,另一颗麦克风LR=GND。VDD麦克风在rising-to-falling半周期驱动DATA,到falling edge被采样后释放;GND麦克风在falling-to-rising半周期驱动DATA,到rising edge被采样后释放。于是DATA线上按时间交替出现两个麦克风的PDM bit。
如果没有High-Z或High-Z时序错误,两颗麦克风可能同时驱动同一根DATA线。一颗输出1,另一颗输出0时会形成总线冲突,波形会被拉坏,严重时还可能增加功耗或造成可靠性问题。
7. "采样"一词的两个层级
这里特别容易混淆的一点是:datasheet里的Data Sampled by Data Rx On指的是接收端在某个时钟边沿读取DATA线上的0/1 bit。它不是指麦克风内部在这个边沿采集空气声压。
声学信号进入MEMS结构后,经过前端模拟电路和sigma-delta调制器形成高速1-bit PDM bitstream。这个调制过程在内部连续进行。外部PDM时钟边沿主要用于同步输出bit和接收端锁存bit。
因此,"LR=GND时rising edge采样"这句话应理解为:PDM接收器在rising edge把DATA线上的当前bit锁存进数字接收逻辑。它不等价于"声压只在rising edge被测量"。
8. 调试时需要检查的配置
| 检查项 | 为什么重要 | 错误时可能出现的现象 |
|---|---|---|
| PDM receiver的采样边沿 | 必须与麦克风的data-valid窗口匹配 | bit error,灵敏度偏差,噪声异常 |
| LR/Select接法 | 决定该麦克风占用哪个半周期 | 左右声道交换,声道为空或错位 |
| DATA是否有共享双麦 | 共享DATA时必须依赖High-Z交替驱动 | 总线冲突,波形畸变,功耗异常 |
| CLK频率和占空比 | 半周期长度决定timing margin | 高频时序不稳定,偶发失真或pop |
| 走线和电平质量 | 边沿过慢或串扰会压缩有效采样窗口 | PDM数据抖动,EMI敏感,SNR变差 |
对于图中的时序,如果只接一颗LR=GND的麦克风,接收端应把rising edge采样到的bit作为该通道数据。若接收端配置为相反边沿,它可能在麦克风刚释放或另一个半周期的状态读取,结果就不再可靠。
9. 推荐的沟通表述
为了避免歧义,在和FAE、ASIC、Codec或客户沟通时,不建议只说"LR=GND走上升沿"。更准确的表述如下:
对于该PDM MEMS麦克风,Data Select接GND时,麦克风在falling clock edge之后驱动DATA,接收端在下一个rising clock edge采样该DATA bit,然后麦克风在rising edge之后释放DATA线进入High-Z。Data Select接VDD时则相反:rising edge之后驱动,falling edge采样,falling edge之后High-Z。
这句话同时说明了输出边沿、采样边沿和High-Z边沿,比"上升沿采样"更完整,也更适合用于技术邮件、debug note或客户解释。
10. 总结
LR/Data Select引脚的本质作用是选择PDM麦克风在共享DATA线上的半周期slot。LR=GND时,该麦克风占用falling-to-rising半周期:falling edge后驱动DATA,rising edge被接收端采样,rising edge后释放为High-Z。LR=VDD时则占用rising-to-falling半周期。
因此,这类时序问题的关键不是简单记忆"上升沿"或"下降沿",而是明确三个动作之间的关系:data driven after哪个边沿、data sampled by receiver on哪个边沿、data high-Z after哪个边沿。只要这三个动作与接收端配置一致,PDM数据流才能被正确、稳定地解码。