当前位置: 首页 > news >正文

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

在手机中,存在不少传感器,例如光距感,陀螺仪,重力加速度,地磁等。关于各传感器,虽功能作用大家都有所了解,但是在研发设计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电阻在其中。为的是更好的控制电源电压的波动。

相关文章:

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

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

EF Core 数据库映射成实体类

首先在 NuGet 包管理器中安装三个包 Microsoft.EntityFrameworkCore.SqlServer 是一个用于与 SQL Server 数据库进行交互的实体框架核心包。这个包提供了方便的方法和工具,用于在 .NET Core 应用程序中操作 SQL Server 数据库。 Microsoft.EntityFrameworkCore.Too…...

【算法优选】 动态规划之斐波那契数列模型

文章目录 🎋前言🍀[第 N 个泰波那契数](https://leetcode.cn/problems/n-th-tribonacci-number/)🚩题目描述🚩算法流程🚩代码实现 🎄[使用最小花费爬楼梯](https://leetcode.cn/problems/min-cost-climbing…...

FreeRTOS知识梳理

一、RTOS:Real time operating system,中文意思为 实时操作系统,它是一类操作系统,比如uc/OS、FreeRTOS、RTX、RT-Thread 这些都是实时操作系统。 二、移植FreeRTOS到STM32F103C8T6上 interface选择CMSIS_V1,RCC选择Crystal Ceramic Resonator 。 …...

冒泡排序算法(C++版)

1、什么是冒泡排序? 冒泡排序(Bubble Sort)是一种简单的排序算法,其基本思想是多次遍历待排序的元素序列,每次比较相邻两个元素,如果它们的顺序不正确就交换它们,直到整个序列有序。在每一轮遍…...

第22章_数据库的设计规范

文章目录 范式的概念三范式范式一范式二范式三 反范式总结 范式的概念 为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库&#xff…...

5. 深度学习——正则化

机器学习面试题汇总与解析——正则化 本章讲解知识点 什么是正则化为什么要使用正则化?详细讲解正则化本专栏适合于Python已经入门的学生或人士,有一定的编程基础。本专栏适合于算法工程师、机器学习、图像处理求职的学生或人士。本专栏针对面试题答案进行了优化,尽量做到好…...

【链表和顺序表的优缺点】

...

iOS移动应用安全加固:保护您的App免受恶意攻击的重要步骤

目录 iOS移动应用安全加固:保护您的App免受恶意攻击的重要步骤 摘要 引言 一、APP加固的概念 二、APP加固方案的比较 三、保护iOS应用的安全 四、总结 参考资料 摘要 本文介绍了移动应用程序(App)加固的概念和流程,以及市…...

C# .NET Core API 注入Swagger

C# .NET Core API 注入Swagger 环境 Windows 10Visual Studio 2019(2017就有可以集中发布到publish目录的功能了吧)C#.NET Core 可跨平台发布代码,超级奈斯NuGet 套件管理dll将方法封装(据说可以提高效率,就像是我们用的dll那种感觉)Swagger 让接口可视化编写时间2020-12-09 …...

家庭安全计划 挑战赛| 溺水预防

溺水预防 从了解到行动 家庭安全计划 | 少年急救官 地震避险逃生该怎么做? 起火了该如何应对? 哪些行为容易导致溺水? 家庭风险隐患有哪些? 家庭逃生演练四步骤你会吗? 国际救助儿童会(英国&#xff…...

飞书开发学习笔记(五)-Python快速开发网页应用

飞书开发学习笔记(五)-Python快速开发网页应用 一.下载示例代码 首先进入飞书开放平台: https://open.feishu.cn/app 凭证与基础信息 页面,在 应用凭证 中获取 App ID 和 App Secret 值。 教程和示例代码位置:https://open.feishu.cn/document/home/integrating-…...

对测试职业发展的思考

虽然在测试行业摸爬滚打了很年,随着年龄的增长,职位的升迁,似乎已经走到了尽头,因而还是时不时觉得自己的职业发展目标很模糊,这是最近对自己职业发展的一些思考,希望与大家进行分享和探讨: 1、…...

博弈论入门

目录 什么是博弈? 博弈论的发展历史? 博弈的要素有哪些? 博弈的分类? 博弈论的应用 收益矩阵 纳什均衡的定义 博弈论的例子 1、田忌赛马 2、穷途困境 2.1优化反应函数法 2.2Nashpy库 2.3顶点枚举算法 3、Nash游戏 …...

php加密解密

public static function encrypt($data, $key) {$key 111;// 生成盐值$salt openssl_random_pseudo_bytes(16);// 使用盐值和密钥进行加密$encrypted openssl_encrypt($data, AES-128-CBC, $key, 0, $salt);// 将盐值和加密后的数据拼接$result base64_encode($salt . $enc…...

基于YOLOv8的输电线路异物识别算法应用

基于 YOLOv8 的输电线路异物识别算法应用 输电线路作为电力系统的重要一环,保证其安全稳定运行是十分必要的。由于长期暴露于室外,线路所面临的不安全因素繁多,异物入侵便是其中之一。异物可能会引起线路短路甚至诱发火灾,因此要加…...

win环境Jenkins部署前端项目

今天分享win环境Jenkins部署前端vue项目,使用的版本jenkins版本Jenkins 2.406版本。 前提是jenkins安装好了,通用配置已经配置好了,可以参考上两篇博客。 1、前端项目依赖nodejs,需要安装相关插件 点击进入 安装成功标准 jenki…...

DDD领域驱动设计模式结构图面向接口编程

DDD领域驱动设计模式结构图面向接口编程 9.资源库 在刚接触资源库(Repository)时,第一反应便是这就是个 DAO 层,访问数据库,然后吧啦吧啦,但是,当接触的越久,越发认识到第一反应是错的,资源库更…...

Ubuntu中安装R语言环境并在jupyter kernel里面增加R kernel

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...

JVM:如果是你,你如何解决跨代引用的问题?(记忆集和卡集)

这部分内容主要是为了稍后介绍各款垃圾收集器时做前置知识铺垫,如果对这部分内容感到枯燥或者疑惑,可以先放下看,等后续遇到要使用它们的实际场景、实际问题时再结合问题,再回来阅读和理解。 记忆集和卡集 前面在分代收集理论那…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...

AD学习(3)

1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分&#xff1a; &#xff08;1&#xff09;PCB焊盘&#xff1a;表层的铜 &#xff0c;top层的铜 &#xff08;2&#xff09;管脚序号&#xff1a;用来关联原理图中的管脚的序号&#xff0c;原理图的序号需要和PCB封装一一…...

未授权访问事件频发,我们应当如何应对?

在当下&#xff0c;数据已成为企业和组织的核心资产&#xff0c;是推动业务发展、决策制定以及创新的关键驱动力。然而&#xff0c;未授权访问这一隐匿的安全威胁&#xff0c;正如同高悬的达摩克利斯之剑&#xff0c;时刻威胁着数据的安全&#xff0c;一旦触发&#xff0c;便可…...

21-Oracle 23 ai-Automatic SQL Plan Management(SPM)

小伙伴们&#xff0c;有没有迁移数据库完毕后或是突然某一天在同一个实例上同样的SQL&#xff0c; 性能不一样了、业务反馈卡顿、业务超时等各种匪夷所思的现状。 于是SPM定位开始&#xff0c;OCM考试中SPM必考。 其他的AWR、ASH、SQLHC、SQLT、SQL profile等换作下一个话题…...