音频信号采集前端电路设计实践
本项目是模拟电路前端工程化第1部分的课程实践,设计一款音频信号采集前端电路。
标签
嵌入式系统
ADC
模拟
maskmoo
更新2023-04-03
662

1信号源(驻极体MIC)

Fpict40EQYxNajD6Ya79EPfdhv2v

 

根据上述参考资料了解要想MIC输出电压的动态范围最大,需要合适的偏置电阻将正极+输出电压设置在Vs的一半根据MIC规格书中的电气参数可知,静态电流为500uA,因此RL=(Vs-V+)/Idss=(4-1)V/500uA=8K,实际选择了2.2K,相差不大。这也是多数MIC推荐的工作条件:2V偏置电压、2.2K偏置电阻。在此条件下,可以计算得出MIC两端的静态电压Vbias=2-2.2K*500uA=0.9V。

 

带通滤波器设计

在音频信号采集的过程中,想要滤除低频和高频信号,一般会在运算放大电路之前使用滤波器来实现。如果先放大信号再进行滤波,可能会放大一些不需要的噪声信号,从而使滤波器的效果不佳。

这里采用一个RC带通滤波器,根据题目要求通带范围为100Hz到16kHz,那么需要将一个低通滤波器和一个高通滤波器结合在一起,形成一个带通滤波器。具体而言就是通过设计一个一阶RC低通滤波器和一个一阶RC高通滤波器来实现。

首先设计一个通带截止频率为16kHz的一阶RC低通滤波器。根据公式C = 1 / (2πfR)计算出所需的电容值为约1nF,电阻值为1kΩ。

然后再设计一个通带截止频率为100Hz的一阶RC高通滤波器。根据公式C = 1 / (2πfR)计算出所需的电容值为约1.6μF,电阻值为1kΩ。ADALP2000里只有1uF的电容,所以重新计算R = 1 / (2π * 100Hz * 1μF) ≈ 1.59kΩ,这里就选取1.5kΩ。

 

AD8542放大电路

信号幅度:0.1mVpp到1Vpp
信号频率:100Hz到16KHz
后端采用AD7920进行数据采集,5V供电条件下设定输入阈值为0.5到4.5v
FqBBrJ0p7CyZT7kSuJIMyXsKafrD

R2/R1 = V0/V1 -1 = 4-1 = 3

V+ =(v1*R4 + 5*R3) /(R3+R4)     R4/R3 =39

通过LTSpice对放大电路进行仿真:

FomDNve0iWkmyCiWSxm1EvZdUMdZ

 

抗混叠滤波器设计

搭建RC滤波电路进行抗混叠滤波设计,ADC的采样率为96kHZ,奈奎斯特采样为48kH。电阻不知选择过大,这里选择为100R,

滤波器的设计使用以下公式来选择电阻和电容的值:

C = 1 / (2πfR)

C = 1 / (2π × 30,000 × 100) ≈ 5.3 × 10^-8 F ≈53nF

并用LTSpice的step功能进行仿真实验

FhmbsfurxMHB6lCYr8Y3YiQfiin_

最终结合ADALP2000的元器件列表选择0.047uF的电容

 

AD7920信号转换部分

搭建电路,并采用RP2040的SPI进行驱动,数据线始终为低电平没有数据。

实验现象:

通过梅林雀能够观察到放大器按照仿真设计现象在工作,并通过对MIC进行吹起可以看到明显的波形变化。

总结:

本次课程实践只完成了完成放大电路和抗混叠滤波部分的仿真和实验,AD7920不工作导致整个信号采集部分没有完成,目前仍没找到是什么原因。

希望后面能根据其他同学的项目实现定位到具体原因并解决。

 

补充:

后面将MUC更换为Seeed XIAO开发板的SPI驱动AD7920实现了ADC数据的采集通过串口上传到PC,在PC通过ArduinoIDE的串口绘图其对ADC数据进行波形显示,目前还不确定是RP2040的时序问题还是其他问题。

#include <SPI.h>
const int CS = 7;


const int chipSelectPin = 7;

void setup() {
  SerialUSB.begin(921600);

  // start the SPI library:
  SPI.begin();
  SPI.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE2));
  // initalize  chip select pins:
  pinMode(chipSelectPin, OUTPUT);

  delay(100);
}


  unsigned char data[5] = {0x01, 0x00, 0x00}; 
  unsigned short receivedData = 0x00;

void loop() {

  // take the chip select low to select the device:
  digitalWrite(chipSelectPin, LOW);

   short res =SPI.transfer16(0x0100); //Send register location

                                                                     
  // take the chip select high to de-select:
  digitalWrite(chipSelectPin, HIGH);
  delay(10);
    // display the temperature:
    SerialUSB.println(res);
}

FjEGuA9F-ASJENG7Np7I-H3o9Mhj

 

 

 

参考链接:

  1. Microsoft Word - YP18022603 HCM9765-P11-453 高端.doc (analog.com)
  2. 驻极体麦克风(ECM)电路设计总结 - 知乎 (zhihu.com)
  3. 驻极体麦克风前置放大电路
  4. ece.ucsb
  5. 二阶有源带通滤波器设计
  6. 抗混叠低通滤波器基础知识 | DigiKey
  7. 滤波器基础:抗混叠
  8. AD8542 | 低输入偏置电流运算放大器(≤100 pA) | 亚德诺(ADI)半导体 (analog.com)
  9. AD7920 | 单通道模数转换器 | 亚德诺(ADI)半导体 (analog.com)
  10. AD7920 - Microcontroller No-OS Driver [Analog Devices Wiki]
  11. Seeed Studio XIAO SAMD21 入门指南 | Seeed Studio Wiki
  12. Seeed Studio XIAO SAMD21 by Nanase | Seeed Studio Wiki

 

 

 

附件下载
AD8542.asc
AD7920.ino
团队介绍
吃了没好好学模电的亏
团队成员
maskmoo
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号