HP Jack介绍
转载:https://www.cnblogs.com/Peter-Chen/p/3999212.html
目前市场上耳机分为4环耳机(图1所示,iphone型)和3环耳机(图2所示)。4环耳机称为headset,3环耳机称为headphone,两者之间的区别就是4环耳机比3环耳机多个micphone。而Jack其实就是PC、PAD & Phone等设备上的耳机插口。

图1 图2
与耳机对应,一般常见的Jack都是由5PIN or 6PIN组成,其中PIN脚分别作为HP_OUTL(左声道输出)、HP_OUTR(右声道输出)、HP_DET#(耳机检测)、GROUND(地) & MIC(麦克风)使用。
在讲Jack的构造之前,先描述下驱动中耳机检测的一般流程:
<PLUG IN>HP_DET#信号由High->Low,触发IRQ到SOC,进入中断处理函数(即耳机类型检测);当检测到耳机为4环耳机时,直接上报给系统,并Enable butten press功能;若检测到为3环耳机时,继续检测,直到检测为4环耳机或则检测次数已满,然后将当前耳机状态上报给系统。
<PLUG OUT>HP_DET#信号由Low->High,触发IRQ到SOC,将当前耳机状态上报系统,并Disable那些和耳机相关的工作;
虽然Jack仅由5~6PIN组成,但不同的厂商会将其设计成各种各样。Jack的不同构造会对应着不同现象,下面描述我平时遇到的一些Jack构造以及其对应出现的现象。若有不对之处,还希望大家给予指正,谢谢!
Type1:

图3 图4
对于Type1的两个jack在功能上实际是一致的,并且都为5PIN脚。该Jack构造是HP_DET#和HPOUTL处于最前端,并且在同一位置,这样的设计是只有当耳机全部插入的时候,才能触发HP_DET#信号。由耳机检测的流程可知,该构造应该能很快的辨别出插入的耳机是3环 or 4环。并且不管快拔 or 慢拔耳机,都能第一时间触发HP_DET#信号。
Type2:

图5
Type2与Type1的jack的构造区别在于HP_DET#和HP_OUTL引脚不在同一位置,Type2类型的jack中HP_OUTL引脚会比HP_DET#更靠前。
这样的构造可能会出现当4环耳机刚拔出1环左右长度时,在这种情况下,6个PIN的状态可能如下:HP_OUTL处于float状态;HP_DET# & HS_OUTR处于第一环;AGND处于第二环;MIC2P_HP处于第三环,恰好是耳机的“-G-”,使得MIC2P_HP引脚的电压值为0.0V。由于HP_DET#依旧处于Pull Low状态,这样系统认为4环耳机仍然插入,而此时MIC2P_HP引脚因接地,导致其引脚电压值一直为0.0V,这与插入4环耳机,长按Butten的效果是一样的。
有的Android机台,会有Google Search功能,除了在操作界面上唤醒该功能外,还可以使用长按4环耳机的Butten键。
Type3:

图6
Type3 Jack的构造是将HP_DET# & AGND引脚接到同一位置,这样当耳机插入2节左右长度时,系统就可以识别到有耳机插入。使用Type3 Jack除了会出现Type2 Jack问题外,还会出现当慢慢斜着插入3环耳机时,系统会认为是4环耳机直接上报给上层。这个问题可以通过机构的设计解决“斜插”的问题,从而消除3环误认为4环的现象。
Type4:

图7
Type4 Jack的构造是HP_DET#处于最前端,这就与Type1 Jack的构造效果一致。
总结:本文主要描述了几种Jack的构造及其对应可能出现的问题。不足与不当之处希望大家见谅与指正。谢谢!
HP Jack介绍的更多相关文章
- 如何向Openstack社区提交一个新项目
前几天有个朋友问我:自己有一个idea不错的项目,也把基本的框架写好了,想贡献到Openstack社区,却不知道应该怎么做.正好之前我有过类似的经历,那么来分享一下我是如何向Openstack社区提交 ...
- HP ML150 G6 服务器硬件介绍
前面板和背面板组件介绍: 1 介质托架 12 系统运行状况 LED 指示灯 2 USB 2.0 端口 (2) 13 AC ...
- it工程师常用英文自我介绍常用用语
Good morning ! It is really my honor to have this opportunity for an interview, I hope i can make ...
- Linux基础介绍【第一篇】
Linux简介 什么是操作系统? 操作系统,英文名称Operating System,简称OS,是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心 ...
- ASP.NET Core 中文文档 第四章 MVC(3.6.1 )Tag Helpers 介绍
原文:Introduction to Tag Helpers 作者:Rick Anderson 翻译:刘浩杨 校对:高嵩(Jack) 什么是 Tag Helpers? Tag Helpers 提供了什 ...
- iOS-多线程介绍
一.前言部分 最近在面试,重新温习了一遍多线程,希望加深一遍对于多线程的理解. 1.什么是进程? 1).要了解线程我们必须先了解进程,通俗来讲进程就是在系统中运行的一个应用程序. 2).每个线程之间是 ...
- java web学习总结(二十七) -------------------JSP标签介绍
一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...
- Linux 关于Transparent Hugepages的介绍
透明大页介绍 Transparent Huge Pages的一些官方介绍资料: Transparent Huge Pages (THP) are enabled by default in RHEL ...
- Windows下LATEX排版论文攻略—CTeX、JabRef使用介绍
Windows下LATEX排版论文攻略—CTeX.JabRef使用介绍 一.工具介绍 TeX是一个很好排版工具,在学术界十分流行,特别是数学.物理学和计算机科学界. CTeX是TeX中的一个版本,指的 ...
随机推荐
- C# 多线程中经常访问同一资源可能造成什么问题?
竞态条件和死锁. 如果两个或多个线程访问相同的对象,或者访问不同步的共享状态 ,就会出现竞态条件: 为了避免出现该问题,可以锁定共享的对象.但是过多的锁定也会有麻烦,那就是死锁: 当至少有两个线程被挂 ...
- idea hibernate反转pojo实体类和映射文件
- 【深入Java虚拟机】一 JVM类加载过程
首先Throws(抛出)几个自己学习过程中一直疑惑的问题: 1.什么是类加载?什么时候进行类加载? 2.什么是类初始化?什么时候进行类初始化? 3.什么时候会为变量分配内存? 4.什么时候会为变量赋默 ...
- PXE:终于成功启动 fedora live 了!
default menu.c32 timeout 1 label fedora29-live menu label fedora29-live from ftp kernel fedora29live ...
- Android 最流行的吸顶效果的实现及代码
开始逐渐领略到ItemDecoration的美~ 今天让我 使用 ItemDecoration 来完成 可推动的悬浮导航栏的效果,最终实现的效果如下图: 具体实现步骤如下: 根据我前面的文章所讲的Re ...
- etl数据同步工具 kettle
kellet使用 https://www.cnblogs.com/gala1021/p/7814712.html
- 智能聊天机器人——基于RASA搭建
前言: 最近了解了一下Rasa,阅读了一下官方文档,初步搭建了一个聊天机器人. 官方文档:https://rasa.com/docs/ 搭建的chatbot项目地址: https://github.c ...
- java发送邮件无法显示图片 图裂 的解决办法
package com.thinkgem.jeesite.common.utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; ...
- C# WinForm窗体控件GroupBox修改边框颜色控件
C# WinForm窗体控件GroupBox修改边框颜色控件 1.新建组件这里可以自定义一个GroupBox控件起名为GroupBoxEx 2.增加一个BoderColor属性 private Col ...
- python爬虫工具
一直都听说python写爬虫工具非常方便,为了获取数据,我也要写点爬虫,但是python太灵活了,不知道python爬虫要哪些框架,要了解,比如beatiful soup,scrapy, 爬虫的额主要 ...