驱动功放时,遇到POP noise 是常见的问题,以前遇到此问题,首先想到的对策就是mute the output.本人一直来对此种解法感觉不爽,心里不快。最近遇到开机时耳机有很强的POP,决定好好研究一下产生的原因,一来想了结一下心中的不快,二来想找出根本的原因,以便以后遇到此类问题有个根本的对策。废话到此。

  • 开机耳机POP noise 问题

本人遇到两种情况,其实就是两种不同的电路,然其解决思路基本相同。

情况一:IC(以下IC即指TAS5719)的A_SEL脚接电阻下地,并和HP_SD相连(HP_SD不受MCU控制)

  1. POP niose产生原因:IC上电复位后不能马上切到耳机,此时IC工作还没有稳定,大致在5-6s后再进行切换。
  2. 对策:当开机时,耳机已经插入。IC先进行复位,然后进行初始化设置,再写耳机和喇叭切换的寄存器值。从IC复位到写切耳机的寄存器的间隔时间需要5-6s。 即复位后5-6s才给0x05寄存器写入0x13切到耳机模式;

流程:IC上电复位后延时100ms-->IC初始化-->IC复位后5-6s,0x05寄存器写0x13(耳机模式,A_SEL设为输出),此时A_SEL脚为高

情况二:IC的A_SEL脚接磁珠下地(A_SEL始终为低),不和HP_SD相连,HP_SD(耳机使能)由MCU控制

  1. pop noise 产生原因:IC上电复位后不能马上切到耳机,此时IC工作还没有稳定,大致在5-6s后再进行切换。
  2. 对策:当开机时,耳机已经插入。IC先进行复位,然后进行初始化设置,再拉高耳机使能脚。从IC复位到拉高耳机使能脚的间隔时间需要5-6s。即IC初始化的时候0x05寄存器写入0x10,复位后5-6sMCU拉高HP_SD切到耳机模式;

流程: IC上电复位后延时100ms-->IC初始化,0x05寄存器写入0x10-->IC复位后5-6s,HP_SD拉高(耳机使能,A_SEL设为输出),A_SEL脚始终为低.

此电路下,插入耳机0x05寄存器写入0x10后要延时(实验为1S),再拉高HP_SD,此为避免插入耳机产生POP noise.

总结:

  1. 以上两种电路,开机时POP noise 产生的地方都是在IC初始化之后没有足够的延时就进行耳机和喇叭模式的切换导致的。
  2. 不论电路怎么设计,IC写寄存器之前要有至少100ms的延时,再有不论是寄存器进行耳机/喇叭使能切换还是使能引脚进行切换,都要在IC复位工作稳定后再做切换,这样才能避免noise的产生。
  3. 在耳机切换时,因耳机和喇叭的输出是有差别的,所以在耳机切换的时候要写入各自的当前音量。

以上仅为个人实践所得,如有不当或需更进之处请多多指教。

功放TAS5719耳机POP noise分析 对策的更多相关文章

  1. 杂音 & pop 音的解决方法

    杂音 & pop 音的解决方法 1. 喇叭有严重的"吱吱"破音,绝大多数的原因有可能在于V(out)电压不稳定,所以最好测一下无负载时的输出电压.同时也可以测量 VCC – ...

  2. POP音原因

    一,通话时调节音量,有POP音. POP音产生原因在于,音量变化太大导致有POP音,需要以淡入淡出的方式调节音量.请申请MOLY00108114 & MOLY00108143这两个Modem ...

  3. 【转】自定义iOS的Back按钮(backBarButtonItem)和pop交互手势(interactivepopgesturerecognizer) --- 不错

    原文网址:http://blog.csdn.net/joonsheng/article/details/41362499 序 说到自定义UINavigetionController的返回按钮,iOS7 ...

  4. Netty源码分析第8章(高性能工具类FastThreadLocal和Recycler)---->第4节: recycler中获取对象

    Netty源码分析第八章: 高性能工具类FastThreadLocal和Recycler 第四节: recycler中获取对象 这一小节剖析如何从对象回收站中获取对象: 我们回顾上一小节demo的ma ...

  5. 逆向与反汇编实战(一)--PEiD分析复现

    1.准备 简介: PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470 种PE 文档 的加壳类型和签名. 整个过程需要测试文件成品:htt ...

  6. 一个无锁消息队列引发的血案(五)——RingQueue(中) 休眠的艺术

    目录 (一)起因 (二)混合自旋锁 (三)q3.h 与 RingBuffer (四)RingQueue(上) 自旋锁 (五)RingQueue(中) 休眠的艺术 (六)RingQueue(中) 休眠的 ...

  7. kafka启动报java.net.UnknownHostException

    kafka启动报java.net.UnknownHostException 参考资料: 1.https://blog.csdn.net/zdxiq000/article/details/6258765 ...

  8. 基于ARM的射频识别读卡器电路设计

    http://tech.yktworld.com/201010/201010032128115666.html 来源:一卡通世界      作者:江小平,李中捷,余晓峰      2010-10-3 ...

  9. pop3密码嗅探

    成品与代码可在 https://pan.baidu.com/s/1MPfU2T_6YN6mgxUL0wrZxw 下载 来说下pop协议, 英文版,https://tools.ietf.org/html ...

随机推荐

  1. 5、预测和鉴定miRNA的靶基因

    转载:http://www.oebiotech.com/Article/mirnabjyyc.html http://www.ebiotrade.com/newsf/2014-9/2014925941 ...

  2. 27、BLASTN的参数

    转载:http://blog.sina.com.cn/s/blog_5ecfd9d90100ksui.html http://www.docin.com/p-704735699.html 与之前的bl ...

  3. iperf3

    1.安装 将下载得到的“iperf-3.1.3-win64.zip”文件解压缩,得到“iperf3.exe”和“cygwin1.dll”两个文件.将这两个文件复制到“%systemroot%”(大多数 ...

  4. <c和指针>学习笔记6输入输出函数

    1 错误报告 (1)perror函数 void perror(char const *message) error是标准库的一个外部整型变量(errno.h),保存错误代码之后就会把这个信息传递给用户 ...

  5. HDU 5971 Wrestling Match (二分图)

    题意:给定n个人的两两比赛,每个人要么是good 要么是bad,现在问你能不能唯一确定并且是合理的. 析:其实就是一个二分图染色,如果产生矛盾了就是不能,否则就是可以的. 代码如下: #pragma ...

  6. 《鸟哥的Linux私房菜》读书笔记4

    1. grep查找 grep 'string' filename; last | grep 'root'; 以行为单位. 利用参数-i(忽略大小写),-v(反相)等进行正则表达式: ‘’中可以为正则表 ...

  7. e.key && e.which && e.keyCode

    官方推荐用e.key来描述状态码,其他两种属性可能会在未来被废弃. 且key,keyCode和which 为只读属性   但是会有浏览器兼容性的问题,可以采用如下代码:   let key = ''; ...

  8. Codeforces - 102222H - Fight Against Monsters - 贪心

    https://codeforc.es/gym/102222/problem/H 题意:有一堆怪兽,怪兽有HP和ATK.你有一个英雄,英雄每次先被所有怪兽打,然后打其中一个怪兽.打的伤害递增,第一次1 ...

  9. Codeforces Round #507 (Div. 2)C(贪心,逆向遍历,构造)

    #include<bits/stdc++.h>using namespace std;int order[300007];long long t[300007],ans[300007];i ...

  10. 反射实现增删改查(DAO层)——插入数据

    先贴出代码,后续补充自己的思路.配置文件.使用方式: /** * 插入数据 */ @Override public void addObject(Object object, String table ...