手机地磁传感器与常见问题

在手机中,存在不少传感器,例如光距感,陀螺仪,重力加速度,地磁等。关于各传感器,虽功能作用大家都有所了解,但是在研发设计debug过程中,却总是会遇到很多头疼的问题。关于传感器,今日主要讲一下地磁传感器。

一 地磁传感器

是将由磁场、应力、应变、温度、光等引起的磁特性变化,转换成电信号进行检测的装置。

二 分类

按照目前主流的技术主要分为以下四种:

  1. AMR
  2. HALL
  3. GMR
  4. TMR
    目前主要用到的是AMR技术。

三 关于干扰源

硬磁——其本身可产生磁场的物质。例如手机中的听筒,喇叭,带马达的摄像头模组,除此之外电流也属于硬磁。中学物理曾了解过奥斯特实验,揭示了电流周围存在磁场。这也说明了电流和前面几个物质一样的性质,所以归类为硬磁。可使空间中的磁场发生移位。
在这里插入图片描述
软磁,其本身不包含磁场,在外加磁场的磁化影响下,产生了磁性。手机中,软磁材料例如弹片,螺丝,NFC线圈中的隔磁材料等。如果你还不了解,可以想象童年时期,我们经常会使用吸铁石吸引硬币,此时硬币被磁化,如果选择将另一颗硬币放在被磁化的硬币附近,其可以被前者的硬币吸引。前者的硬币则属于软磁。当外加磁场撤去后,被磁化的器件去磁时间也是根据不同的材料所不同。即使其本身不存在磁场,但是可使空间中的磁场发生扭曲。
在这里插入图片描述

关于指南针,并非单指地磁传感器这个模块。在场景使用过程中,往往会存在一定角度的倾斜,此时会调用手机中的加速度的数据,二者进行融合,最终呈现出指南针指针的偏移。

四 常见问题

在手机debug测试中,往往会遇到以下几类问题:

1. 指南针卡死

关于指南针卡死,这里的指南针并非单指M sensor,A sensor也同样处理着指南针指针的变化情况。所以二者只要有一方工作异常,三轴数据中的某一轴或者几个轴卡死都会使得指南针在使用过程中出现卡死情况。如果想要加强这个理解,可以物理摘掉A sensor,观察指南针情况。

水平静置下,指南针角度偏移大——在项目前期调试过程中,这类问题是很常见的,因受周围软磁的影响,所以我们需要寄3-5PCS机器给到地磁厂商,用于做软磁补偿。补偿系数则需要软件合入代码中。加入补偿系数后的指南针在水平静止状态下偏移情况与标准指南针往往相差在3度以内。

2. 充电场景,指南针角度偏移大

关于这类问题,是很多项目经常遇到的。有时甚至我们从市面上买对比机对比充电指南针干扰时也同样遇到过。这类问题在有些时候简直无解,在现如今动不动二百瓦充电功率的时代,充电场景的指南针问题成为了很多开发者头疼的问题。这部分原因从硬件上分析,主要分为两部分:

地磁附近存在VBUS走线

因变化的电流会产生磁场,其必然会影响到地磁三轴的数据输出情况,进而影响到指南针的偏转情况。设计前期,应尽量避免地磁附近走VBUS线路。除此之外,建议地磁附近尽量不要放置大的地空,地磁摆放位置尽量处于主板靠近电池盖的一面。

充电回流影响

关于充电回流的影响,几乎是每个充电指南针干扰问题的原因。关于手机的地,不仅分为主板地还分为结构地。其通过弹片,螺丝融合为一个“地”。充电的回流路径往往无法预测,也就使得在遇到因回流引起的地磁干扰问题,debug方向往往是多方位的,需要增加多处整个措施,使得回流路径发生变化,减小地磁的干扰。关于整改,优先排查地磁附近的接地螺丝孔与接地弹片。弹片可选择通过电容下地,螺丝孔铺铜处可铺上绿油。关于任何接地的整改都需要与其他领域拉会对齐,评估对各领域的影响性。

在各家平台的代码逻辑中,本身已含有9D算法,其中高通有的算法较为成熟,MTK的算法较为弱些,所以在使用MTK平台时,往往是地磁厂商提供自己的一套9D算法方案。其主要还是依据陀螺仪的数据修正指南针偏移情况。然而此算法在大角度偏移情况下十分有效,在小角度缓慢偏移的情况下很难进行修正。
除此之外,软件还可通过在sensorhub中调用充电相关函数结合偏移情况进行补偿。其效果可改善,但是一致性无法保证。目前很少有项目用上,主要还是方案不是很成熟,同时厂商都有自己的一套代码逻辑,不会擅自加上第三方的代码。

五 关于原理图与Layout

地磁位于主板投影区的各层地建议挖空处理,不要有走线。按照厂商要求对周围各关键器件进行一定距离的远离。在位置确定下来后,提供各距离数据给与地磁厂商做硬磁仿真。因地磁在工作时,电流并非稳定的,往往会存在脉冲,所以地磁的电源线走线建议在0.2mm起步。主板的电源滤波电容选择在2.2UF-4.7UF,个别厂商还会建议串一颗3.3R电阻在其中。为的是更好的控制电源电压的波动。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/139714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构:树的存储结构(孩子兄弟表示法,树和森林的遍历)

目录 1.树的存储结构1.双亲表示法(顺序存储)1.优缺点 2.孩子表示法(顺序链式存储)3.孩子兄弟表示法(链式存储)4.森林与二叉树的转换 2.树的遍历1.先根遍历2.后根遍历3.层序遍历 3.森林的遍历1.先序遍历2.中…

fastANI-基因组平均核酸一致性(ANI)计算

文章目录 简介安装使用Many to Man-使用基因组路径作为输入One to One 结果其他参数说明可视化两个基因组之间的保守区域并行化 简介 FastANI 是为快速计算全基因组平均核苷酸同一性(Average Nucleotide Identity,ANI)而开发的,无…

人工智能与教育:未来的技术融合

人工智能与教育:未来的技术融合 随着科技的飞速发展,人工智能(AI)逐渐渗透到我们生活的方方面面,包括教育领域。AI与教育的结合,有望引发一场教育变革,提高教学效果,实现个性化学习&…

嵌入式软件工程师面试题——2025校招社招通用(十二)

说明: 面试题来源于网络书籍,公司题目以及博主原创或修改(题目大部分来源于各种公司);文中很多题目,或许大家直接编译器写完,1分钟就出结果了。但在这里博主希望每一个题目,大家都要…

召回率计算及影响因素

召回率是指在所有正样本中,被成功预测为正样本的样本数占比。在机器学习领域,召回率是评估模型预测性能的重要指标之一。在本文中,我们将从多个方面深入探讨召回率的概念和应用。 阈值越高,精准率越高,召回率越低&…

LC-2300. 咒语和药水的成功对数(排序+贪心、排序+二分)

2300. 咒语和药水的成功对数 中等 给你两个正整数数组 spells 和 potions ,长度分别为 n 和 m ,其中 spells[i] 表示第 i 个咒语的能量强度,potions[j] 表示第 j 瓶药水的能量强度。 同时给你一个整数 success 。一个咒语和药水的能量强度…

【自定义类型:结构体】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 1. 结构体类型的声明 1.1 结构体的概念 1.2 结构的声明 ​编辑 1.3 特殊的声明 1.4 结构的自引用 2. 结构体变量的创建和初始化 3. 结构成员访问操作符 4. 结构体内…

matlab GUI界面实现ZieglerNicholas调节PID参数

1、内容简介 略 11-可以交流、咨询、答疑 ZieglerNicholas、PID、GUI 2、内容说明 GUI界面实现ZieglerNicholas调节PID参数 通过ZieglerNicholas调节PID参数,设计了GUI 3、仿真分析 略 4、参考论文 略 链接:https://pan.baidu.com/s/1yQ1yDfk-_…

shell之chown命令介绍

shell之chown命令介绍 chown命令是Linux系统中的一个用于修改文件或目录的所属用户和组的命令。它可以将文件或目录的所有权转移给其他用户或组,只有文件的所有者或超级用户才能使用这个命令进行修改。 命令语法:chown [选项] [所有者][:[组]] 文件或目录…

Revit 平面的圆弧,空间的椭圆弧

大家对Revit的空间曲线那么理解,如何用代码创建空间的椭圆弧,,上看是圆弧,正面看是椭圆? 直接放代码: Document doc = commandData.Application.ActiveUIDocument.Document; Autodesk.Revit.DB.XYZ center = new Autodesk.Revit.DB.XYZ(0, 0, 0); …

Googletest(Gtest)使用case指南

安装gtest: 源码安装: https://github.com/luozesong/googletest 从官方源码拷贝下载到本地后,进入googletest/googletest目录下,创建build目录,进入build目录,编辑CMakeLists.txt,在头部添加一行&#xff…

力扣labuladong——一刷day25

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣528. 按权重随机选择 带权重的随机选择算法 前言 一、力扣528. 按权重随机选择 class Solution {private int[] preSum;private Random rand new Ra…

杂记杂记杂记

目录 Mybatis分页插件原理? ThreadLocal? 树形表的标记字段是什么?如何查询MySQL树形表? Mybatis的ResultType和ResultMap的区别? #{}和${}有什么区别? 系统如何处理异常? Mybatis分页插件原理&#…

基于SSM框架的高校试题管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

操作系统练习-第6章文件管理

一. 多选题(共2题,50分) 1. (多选题, 25分)What would happen if the bitmap or free list containing the information about free disk blocks was completely lost due to a crash? Is there any way to recover from this disaster, or…

Flutter:改变手机状态栏颜色,与appBar状态颜色抱持一致

前言 最近在搞app的开发,本来没怎么注意appBar与手机状态栏颜色的问题。但是朋友一说才注意到这两种的颜色是不一样的。 我的app 京东 qq音乐 这样一对比发现是有的丑啊,那么如何实现呢? 实现 怎么说呢,真不会。百度到的一些是…

c语言练习11周(6~10)

输入任意字串&#xff0c;将串中除了首尾字符的其他字符升序排列显示&#xff0c;串中字符个数最多20个。 题干 输入任意字串&#xff0c;将串中除了首尾字符的其他字符升序排列显示&#xff0c;串中字符个数最多20个。输入样例gfedcba输出样例gbcdefa 选择排序 #include<s…

QT——关于安卓系统的使用,文件权限,USB权限相关介绍总结(Android 11 ,QT5)

1-先介绍写这篇博客的时候使用的系统环境 QT版本&#xff1a;QT5.15.2安卓系统&#xff1a;Android 11 (博主使用的是RK3568 官网下载的android 11 系统)NDK&#xff1a;21.3.6528147CMAKE&#xff1a;3.21.1SDK&#xff1a;28 &#xff08;很重要&#xff09;2-在此环境下&am…

java的类和继承构造

一些小技巧 类和对象 什么是类&#xff0c;对象&#xff0c;方法&#xff1f; 在下面的 Java 代码中&#xff0c;定义了一个名为 Person 的类&#xff0c;并提供了构造方法来初始化对象的属性。类中定义了 eat、sleep 和 work 三个方法&#xff0c;用于表示人的行为。在 main 方…

安装和使用 nn-Meter

安装和使用 nn-Meter nn-Meter: Towards Accurate Latency Prediction of Deep-Learning Model Inference on Diverse Edge Devices nn-Meter&#xff1a;精准预测深度学习模型在边缘设备上的推理延迟 Li Lyna Zhang, Shihao Han, Jianyu Wei, Ningxin Zheng, Ting Cao, Yuqin…