驱动功放时,遇到POP noise 是常见的问题,以前遇到此问题,首先想到的对策就是mute the output.本人一直来对此种解法感觉不爽,心里不快。最近遇到开机时耳机有很强的POP,决定好好研究一下产生的原因,一来想了结一下心中的不快,二来想找出根本的原因,以便以后遇到此类问题有个根本的对策。废话到此。
- 开机耳机POP noise 问题
本人遇到两种情况,其实就是两种不同的电路,然其解决思路基本相同。
情况一:IC(以下IC即指TAS5719)的A_SEL脚接电阻下地,并和HP_SD相连(HP_SD不受MCU控制)
- POP niose产生原因:IC上电复位后不能马上切到耳机,此时IC工作还没有稳定,大致在5-6s后再进行切换。
- 对策:当开机时,耳机已经插入。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控制
- pop noise 产生原因:IC上电复位后不能马上切到耳机,此时IC工作还没有稳定,大致在5-6s后再进行切换。
- 对策:当开机时,耳机已经插入。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.
总结:
- 以上两种电路,开机时POP noise 产生的地方都是在IC初始化之后没有足够的延时就进行耳机和喇叭模式的切换导致的。
- 不论电路怎么设计,IC写寄存器之前要有至少100ms的延时,再有不论是寄存器进行耳机/喇叭使能切换还是使能引脚进行切换,都要在IC复位工作稳定后再做切换,这样才能避免noise的产生。
- 在耳机切换时,因耳机和喇叭的输出是有差别的,所以在耳机切换的时候要写入各自的当前音量。
以上仅为个人实践所得,如有不当或需更进之处请多多指教。
时间: 2024-10-10 02:48:10