项目场景:

很多MCU内部没有DAC,但是芯片应用在需要DAC的场景,此时需要用PWM波模拟DAC输出。

有一路PWM和多路PWM波实现方式,取决于项目要求以及MCU性能

单路PWM波:MCU主频相对较高,项目对DAC精度要求低。

多路PWM波,MCU主频相对较低,项目对DAC精度要求高。


问题描述

使用单路PWM输出时,有噪音输出。输出结构如下:

PWM波  ->   RC滤波电路  ->  功放芯片/8002  ->  喇叭

PWM波:一路PWM,由一个8位定时器产生,频率在64K

RC滤波电路:使用三阶RC滤波,其中R1C1=R2C2=R3C3=RC,所以截止频率

功放芯片:使用8002

喇叭:8欧1W


原因分析:

噪声来源一:定时器输出频率波动

噪声来源二:功放输出不稳定

噪声来源三:滤波电路对PWM波处理有杂波

如果直接输出一段音频,有噪音的出现,此时无法很好的定位问题来源是哪一点。

这里采用一些方法来排除一些噪声源。

(1)输出正弦波,通过示波器观察RC滤波后的波形,分析滤波电路对PWM波处理有杂波

PWM数据;

示波器显示:

RC滤波后:

可以看出RC滤波后正弦波是正常的,稍微有点变形,但是并无异形和封底顶。

(2)输出基准电平(50%的占空比方波),分析定时器输出频率波动和功放输出问题

2.1查看语音wav转的bin文件,索引信息后数据都是0x80.

2.2烧录文件和程序后,测量PWM输出,波形如下图,是正常的。此时喇叭周期性的有噪音输出。功放使能和PWM波同时输出。

2.3 保持功放使能,循环播放语音。此时喇叭周期性的有噪音输出。

检查发现采用FIFO方式在定时器里面读出并更新PWM,由于FIFO读出时间不稳定导致更新PWM波的频率有波动,从而产生噪音。

解决方法:把FIFO读出数据放到外面,提前准备好,修改后喇叭周期性的噪音没有了。

进一步测试发现上电时有一点噪音输出。

2.4分析上电瞬间有噪音输出

原因分析可能是PWM刚开始输出的跳变或者功放刚上电不稳定输出导致。

进一步测试:

1.上电后先输出PWM波5s后打开功放使能,此时功放使能瞬间有一个噪声

2.上电后先打开功放使能5s后输出PWM波,此时有两个噪声,刚上电时以及5s后输出PWM时。

通过波形和结果可以分析出:上电噪声有两个原因

A.功放使能时功放内部输出的噪声。

B.PWM波刚输出时产生一个跳变信号,从而产生的噪声。

功放的上电噪音可以在输出端加入滤波电容进行消除,因为这个和具体的功放有关系,可能有些功放没有上电噪音,没有进一步测试。


解决方案:

1.同过正弦波调整RC滤波,使得波形尽量如同正弦波

2.使用时先输出PWM波后在开功能使能,这样只有一个功放使能时内部噪声。

一路PWM三阶RC滤波语音输出-噪声问题相关推荐

  1. 利用RC网络降低可调节LDO输出噪声

    本文转载自硬件十万个为什么 低压差稳压器(LDO) 可用来为高速时钟.模数转换器.数模转换器.压控振荡器和锁相环这些电路供电.噪声对于高性能模拟电路的设计人员而言极为重要.降低噪声的关键是保持LDO噪 ...

  2. PWM通过RC低通滤波器模拟DAC

    当我们电路需要DAC而单片机并没有DAC外设时,则可采用PWM通过RC低通滤波器来模拟实现DAC功能. RC低通滤波器 当采用低通滤波器模拟DAC时,PWM频率应远大于RC低通滤波电路的截止频率fc= ...

  3. 关于PCB的机械层和差分布线、RC滤波

    画PCB的时候,禁止布线层和机械层各有什么作用? Gerber导出机械层 没导机械层其实也可以,不影响加工,但是影响你自己看 有些机械层是结构工程师给你定义的,导出来比较好 就是做标识,默认不会加工的 ...

  4. STM32Cube的PWM控制基础篇(一)一路PWM设置

    以下是有关STM32cube的PWM的花式操作,大佬们在看下面链接之前建议先看完本博客,个人觉得写的比较详细,欢迎大佬之指正! STM32Cube的PWM控制基础篇(二)多路占空比不同的PWM STM ...

  5. 跨阻放大电路输出噪声计算

    本笔记针对图1的跨阻电路提供了一种计算输出电压噪声的准确模型. 图1 跨阻放大电路 图1中的跨阻放大电路中,噪声源包括: 反馈电阻Rf的热噪声(假设Ri>>Rf) 运放输入电流噪声in 运 ...

  6. 如何使用定时器捕获一路PWM波信号的频率和占空比

    本次实验将采用定时器2的通道2产生两路频率和占空比均可调的PWM信号,然后使用定时器3的通道1来捕获其中的一路PWM波的频率和占空比. 1.首先来看下产生PWM波的程序,也就是和上篇博客是一样的,只不 ...

  7. STM32输出SPWM波,HAL库,cubeMX配置,滤波后输出1KHz正弦波

    SPWM波 对于功率方向,输出SPWM波是必须要掌握的 工程: stm32生成spwm代码Keil工程链接资源 引用spwm波定义: PWM波形就是指占空比可变的波形:SPWM波形是指脉冲宽度按正弦规 ...

  8. ROS学习笔记-ROS语音识别与语音输出[1]

    说明:代码部分是基于古月居前辈的例程,在此对胡老师表示感谢!! 语音识别功能框图: 调用过程: roscore rosrun robot_voice iat_publish rostopic pub ...

  9. 第5章 Python 数字图像处理(DIP) - 图像复原与重建12 - 空间滤波 - 使用频率域滤波降低周期噪声 - 陷波滤波、最优陷波滤波

    标题 使用频率域滤波降低周期噪声 陷波滤波深入介绍 最优陷波滤波 本章陷波滤波器有部分得出的结果不佳,如果有更好的解决方案,请赐教,不胜感激. 使用频率域滤波降低周期噪声 陷波滤波深入介绍 零相移滤波 ...

最新文章

  1. markdown语法中的空格_Markdown常用语法汇总
  2. .NET经典资源站点汇总
  3. big endian and little endian
  4. java--用 * 打印出各种图形(新手请进)
  5. macbook不能进系统 备份数据_不基于备份和表,生产系统数据误删就能完全恢复?!...
  6. phpmyadmin在centos 7中安装
  7. golang中base64编码_golang中自带base64编码和解码
  8. SQL 内置排名函数 DENSE_RANK
  9. python列表的排序方法是_Python列表排序 reverse、sort、sorted 操作方法详解
  10. 35.Linux/Unix 系统编程手册(下) -- 进程的优先级和调度
  11. 190705每日一句; 寻找内心的勇气, 一切从零开始
  12. 腾讯音乐12月初赴美IPO,250亿美元被低估还是高估?
  13. 好用的屏幕录像截图工具:Movavi Screen Capture Pro 10 Mac
  14. 花都平安保险应该找谁?
  15. 【寒江雪】Unity中调用C++的函数和类
  16. Windows 环境变量工具 Evn
  17. w7计算机管理哪个是显卡,win7怎么看显卡配置以及win7怎么看电脑完整配置
  18. Python爬取王者荣耀官网图片
  19. 使用人人开源项目遇到的一些坑
  20. wpf拖拽图片,滚轮放大缩小

热门文章

  1. python爬取图片并保存到本地
  2. RabbitMQ消费者莫名丢失的问题解决
  3. vue 悬浮按钮组件_Vue悬浮球效果
  4. 人生值得一看-观念,关键在观念 !
  5. One or more constraints have not been satisfied
  6. 关于:win10应用商店下载东西时提示此安装被策略阻止,需请求管理员启用 Windows 更新(解决方案)
  7. 在sqli-liabs学习SQL注入之旅(第二十一关~第三十关)
  8. 中国银联基于软件定义网络的下一代金融云研究探索
  9. 项目管理如何提升项目中的执行力
  10. Vim 利剑常磨,见血封喉