音频驱动篇之pop音攻略

2023-11-12

接触音频驱动工作也有2年的时间了,这这段时间里深刻感受了手机行业的更新换代是MB的迅速。2年的时间里,从TI到QUALCOMM,从android2.1到4.2,从单核到四核。经我参与的项目就有20款,日子是相当的难过。
  今天回头来说一些我在研发过程中遇到的一些音频难点问题与大家分享,希望对从事音频驱动行业的兄弟们有些许帮助,同时也希望大家有好的想法可以和我沟通,与大家分享。
一、pop音产生的原因
   (1)模块(通信模块出来的信号就带有脉冲跳变)
        解决思路:在模块打开或关闭之前,对模块音频增益做渐变处理。
   (2)PA产生
        解决思路:对PA增益做渐变处理
   (3)CODEC产生
        解决思路:对声卡通路顺序进行控制选择、对声卡增益进行渐变处理
二、pop音产生的一些场景
 (1)接听电话时
      解决思路:首先打开模块音频通路,其次在对方响铃的时候(phone)再设置音频模式,然后对codec的增益设为最小,接着对功放进行渐变处理,最后对codec的增益进行递增到正常大小操作。
 (2)主动挂断电话时
      解决思路:首先phone在获取挂断状态的第一时间内先设置音频模式后再进行其他操作,其次对功放进行渐变减小,最后设置codec。
 (3)被动挂断电话
     解决思路:如果不是模块产生的pop音,其解决方法如主动挂断电话场景解决方法一致。如果是模块产生则需要模块在挂断电话的时候做渐变处理。
 (4)设备切换时
    解决思路:主要在设备切换的时候加延迟解决。
 (5)播放音乐/音乐切换
    解决思路:在播放器打开或在音乐切换暂停时,对音量进行渐变处理。

 

 

 

 

 

 

 

 

 

 

 

1. 板级电容/电感发声
情况就是你设备开机之后,啥也没干,然后听到呲啦刺啦的声音,这种情况我遇到过一次,这个是
不合理的结构设计或者走线导致的,硬件实力挖坑,需要改版解决。
2.播放声音长时间有杂音
这个锅我们送给硬件,这个是芯片之间有干扰;需要硬件检查个别芯片的地是不是干净的。

3. 插拔USB出现POP音
还是需要硬件背锅,相关电路加磁珠有可能优化此问题.

4. 播放声音的瞬间有POP音
这个可能是硬件也可能是软件的锅;使用高通QXDM工具分析问题,若0x1586之前都没有问题,那么此问题是硬件导致的,否则是软件导致的;

软件可以从以下两个方面尝试解决:

4.1 PA上下电相关代码使用延迟队列。
4.2 也有可能有人写的代码不规范,自己封装了mixer,但是没有加入到DAPM里面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

音频驱动篇之pop音攻略 的相关文章

  • Linux驱动_spi驱动(ICM20608)

    参考 Linux SPI 驱动分析 1 结构框架 StephenZhou CSDN博客 linux spi驱动 Linux SPI 驱动分析 2 框架层源码分析 StephenZhou CSDN博客 spi message init SPI
  • Android中LCD背光驱动

    分类 Linux驱动 Android系统 2013 06 17 16 28 287人阅读 评论 0 收藏 举报 目录 Android的Setting Android的背光JNI层 Android的背光HAL层 Linux的背光内核层 Lin
  • 使用自旋锁实现驱动设备的互斥访问

    代码来源 Linux设备驱动开发详解 宋宝华 p172 int xxx count 0 定义文件打开次数 static int xxx open struct inode inode struct file filp spinlock xx
  • 【问答23】Linux移植:如何制作rootfs?

    粉丝问题 如何制作rootfs 安排 想直奔主题的 直接跳到第四章 一 分析 1 文件系统简介 理论上说一个嵌入式设备如果内核能够运行起来 且不需要运行用户进程的话 是不需要文件系统的 文件系统简单的说就是一种目录结构 由于 linux操作
  • 【RK3399】I3399烧写Debian系统详解

    00 目录 文章目录 00 目录 01 驱动安装 02 镜像文件烧写 03 问题讨论 04 附录 01 驱动安装 1 1 没有安装驱动的时候 显示感叹号 1 2 解压DriverAssitant v5 1 1 zip 1 3 双击Drive
  • stmmac ethernet

    学习笔记 网卡驱动 从这里看起stmmac register platform 注册一个平台驱动 const struct stmmac of data meson dwmac data setup meson dwmac setup fi
  • linux驱动之ioctl详解

    何为ioctl 在linux对文件IO 有打开 读写 关闭 定位等命令 如果需要一些自定义的命令来操作我们写的驱动 ioctl便是传入这些自定义命令的函数 先看看在应用层的函数原型 int ioctl int fd unsigned lon
  • Linux驱动

    一 前言 设备树是每一个Linux驱动工程师都必须掌握的一个知识点 有很多之前做单片机的朋友刚接触Linux驱动时 会一脸懵 其实设备树的使用并没有大家想像的那么复杂 对于大部分工程师来说 只要会修改即可 很多粉丝留言说 希望彭老师提供一个
  • 段错误(核心已转储)问题的分析方法

    问题现象 今天在研究linux kernel中typedef的用法时 写了一个程序test typedef c 内容如下 include
  • Linux input 子系统详解

    1 模块概述 1 1 相关资料和代码研究 drivers input include uapi linux input event codes h 2 模块功能 linux核心的输入框架 3 模块学习 3 1 概述 Linux输入设备种类繁
  • make menuconfig 添加新选项

    如何在make menuconfig 界面添加新选项步骤 1 先在Linux内核源码目录下创建个新目录 哪个位置都行 一般添加新驱动时 都会在 drivers目录下创建 这里为了实验的方便就在 源码目录下创建了 mkdir hmq test
  • Linux驱动

    HC SR04超声波模块 工作原理参考 超声波模块 star air的博客 CSDN博客 超声波模块 https blog csdn net qq 41262681 article details 95940707 使用超声波测距的操作步骤
  • ioctl函数详解

    大部分驱动除了需要具备读写设备的能力之外 还需要具备对硬件控制的能力 一 在用户空间 使用ioctl系统调用来控制设备 原型如下 cpp view plain copy int ioctl int fd unsigned long cmd
  • 音频常见问题总结

    音频文件在播放时出现断断续续或类似 爆破 Pop Click 杂音的现象 称之为 Xrun 可以是 underrun 也可以是 overrun 原因 通常来说 出现 Xrun 问题时原因可能是以下几个之一 1 Linux CFS 调度器导致
  • eMMC简介

    eMMC是embedded MultiMediaCard的简称 MultiMediaCard 即MMC 是一种闪存卡 Flash Memory Card 标准 它定义了MMC的架构以及访问Flash Memory的接口和协议 而eMMC则是
  • LINUX软中断-ksoftirqd

    前言 在上一篇 LINUX软中断 softirq的描述中 提到过ksoftirqd 这篇文章就介绍ksoftirqd ksoftirqd 是什么 ksoftirqd 是个内核线程 在创建的时候是绑定cpu的 每一个core对应生成一个kso
  • linux支持usb打印机

    配置CONFIG USB PRINTER y inux内核默认运行打印机 核 驱动 直接在配置上CONFIG USB PRINTER y添加上去就好了 make menuconfig 选上USB打印机选项 Device Drivers gt
  • linux驱动调试--段错误之栈信息分析

    转自 http blog chinaunix net xmlrpc php r blog article uid 29401328 id 4923529 接着上一篇来分析一下Oops的栈 s3c2440平台 关于调试源码和整个Oops信息请
  • make -C $(LINUX_KERNEL_PATH) M=$(PWD) modules中的M选项

    新的内核模块编程中的make命令里有个M选项 如下 make C lib modules shell uname r build M PWD modules M PWD 意思是返回到当前目录继续读入 执行当前的Makefile 请参考 从
  • Linux驱动_多点电容触摸

    一丶Linux下多点电容触摸驱动框架 电容触摸屏IC是FT5426 为IIC协议芯片 因此需要编写IIC驱动 触摸IC会发出中断信号 并在中断服务函数中上报信息 因此需要编写中断框架 触摸屏向Linux内核上报的信息都属于Input子系统

随机推荐

  • 基于Matlab实现图像配准技术(附上源码+图像)

    图像配准是数字图像处理中的重要技术之一 它的目标是将多幅图像进行准确的对齐 使得它们在空间上保持一致 图像配准在许多领域都有广泛的应用 如医学影像 遥感图像 计算机视觉等 本文将介绍如何使用Matlab实现图像配准技术 并提供一个简单的案例
  • linux文件内容操作命令,linux 操作系统中cat查看文件内容命令的使用

    cat命令的用途是连接文件或标准输入并打印 这个命令常用来显示文件内容 或者将几个文件连接起来显示 或者从标准输入读取内容并显示 它常与重定向符号配合使用 1 命令格式 cat 选项 文件 2 命令功能 cat主要有三大功能 1 一次显示整
  • 华为安防产品VCN资料下载

    首先登录网站 华为入口 下载后安装 win10 然后就能看到客户端 注册登录 点击资料领航 进入网页 然后就可以下载了
  • 您的计算机已被Malloxx勒索病毒感染?恢复您的数据的方法在这里!

    导言 在数字时代 malloxx勒索病毒已经成为一个可怕的威胁 给个人 企业和组织带来了无法估量的损失 本文91数据恢复将深入探讨 malloxx勒索病毒的运作方式 并提供一些独特的方法来恢复被它加密的数据文件 以及如何在被其困扰之前采取
  • Linux高性能服务器编程|阅读笔记:第5章 - Linux网络编程基础API

    目录 简介 5 1 socket地址API 5 1 1 主机字节序和网络字节序 5 1 2 通用socket地址 5 1 3 专用socket地址 5 1 4 IP地址转换函数 5 2 创建socket 5 3 命名socket 5 4 监
  • 面试题目收集(1)

    本博客的 面试题目搜集系列不错 1 面试题目搜集1 2 面试题目搜集2 3 面试题目搜集3 4 面试题目搜集4 5 面试题目搜集5 6 面试题目搜集6 1 字符串取除多余的空格 包括行首的空格 单词与单词之间只能有多余的空格 结尾不能有空格
  • pytorch简单的逻辑回归

    import torch import torch nn as nn import torchvision import torchvision transforms as transforms Hyper parameters input
  • vue与ios、Android交互问题总结

    1 ios与vue交互可以显示iframe的页面内容 但是不能与iframe交互 Android可以 2 ios可以直接调用html页面 但是url传参只能是问号传参 不可用json对象 Android可以 3 Android对js语法要求
  • Spark高手之路3—Spark运行架构

    文章目录 Spark 运行架构 一 运行架构 二 核心组件 Driver Executor Master Worker ApplicationMaster 三 核心概念 1 Executor 与 Core 2 并行度 Parallelism
  • 【学习笔记向】零基础小白快速制作最简陋MMD(VRoid + Unity)

    特别鸣谢B站UP主十七时的大力支援 学生时期总会有一两个没有安排的周末 不如我们来嗑CP 学习 做MMD吧 第一天 下载软件和素材 熟悉Unity 下载软件可能需要很久 请耐心 一 软件 1 VRoid Studio 用于零基础建模 B站上
  • java必知必会_Java必知必会-Spring Security

    一 Spring Security介绍 1 框架介绍 Spring 是一个非常流行和成功的 Java 应用开发框架 Spring Security 基于 Spring 框架 提供了一套 Web 应用安全性的完整解决方案 一般来说 Web 应
  • 基于DFA方法的健康人与癫痫病人EEG数据分析附代码

    引言 DFA分析方法是由C K提出的一种研究时间序列波动长时相关性的方法 主要用来区别复杂系统本身产生的波动和由外界及环境刺激作用在系统上产生的波动 外部刺激产生的变化假设引起了局部效应 而系统本身内部的动力学产生的变化假设展示了长时的相关
  • 浅拷贝和深拷贝: copy模块的copy()和deepcopy()函数(*^▽^*)

    我们在平时处理列表和字典的时候 有时候希望创建一个列表或者字典的副本拿出来使用 但是同时我们也不希望列表 字典 和其列表 字典 副本还保留着某种联系的时候 比如说我们在修改列表的时候副本也跟着同步被修改了 这是我们最不想看到的情况 这种情况
  • 树莓派教程 - 1.2 树莓派GPIO库wiringPi 软件PWM

    Git例程源码仓库 https github com ZhiliangMa raspberry git 使用到的硬件 led 200 左右的电阻 杜邦线 上一节使用硬件PWM来控制led亮度 可树莓派的硬件PWM引脚只有1路 在实际应用中
  • php生成密码及密码检验

    1 生成密码 password hash test password PASSWORD DEFAULT 2 密码检验 hash 2y 10 ckeTXO nnKfWTDDYRSwGWu0xste 55Cp0RIpolBldDOXZ61ecZ
  • vscode同时编辑多处文字 批量替换编辑内容

    先按Ctrl F打开搜索框 然后搜索要编辑的内容 接着按Ctrl Shift L就可以选中对应的所有内容了 然后可以全部编辑和替换了 按了Ctrl shift L之后把搜索框关闭就可以同时编辑多处了 此处我就是搜索items
  • NLP 中 Bilstm-attentio的使用

    NLP 中 Bilstm attentio的使用 bilstm attention 理解 bilstm attention的作用 bilstm attention 编码实现 bilstm attention 理解 bilstm attent
  • java中的运算符

    java中常见的运算符 1 public static void q1 int a 5 0000 0101 int b 3 0000 0011 a b 0000 00111 二进制两个都为0的时候 结果是0 否则是1 System out
  • qt中lable中更改字体字号加粗等

    以下内容摘抄博客 https blog csdn net superbfly article details 53199731 utm medium distribute pc relevant none task blog BlogCom
  • 音频驱动篇之pop音攻略

    接触音频驱动工作也有2年的时间了 这这段时间里深刻感受了手机行业的更新换代是MB的迅速 2年的时间里 从TI到QUALCOMM 从android2 1到4 2 从单核到四核 经我参与的项目就有20款 日子是相当的难过 今天回头来说一些我在研