IMX8M核心板偶发系统启动失败排查实录

news2024/9/21 2:36:26

一. 基本情况介绍

1. 硬件方案组成

产品中采用的是IMX8M核心板的方案,如图1所示是产品的硬件系统整体组成示意图。

图1 产品硬件组成框图

2. 问题描述

今年5月份有一台设备出现系统偶发启动失败,uboot阶段都无法通过,表面现象是显示屏黑屏。此故障发生概率还挺高,基本上反复上电20次以内必出。

二. 排查记录

1. 第一阶段

1) 显示功能排查

检查显示排线连接,无明显异常;

2) 故障定位

显示屏及显示驱动电路若有问题,通常是必出,而不是偶发,因此核心板的可能性更大。更换其他核心板,问题不再复现,明确问题是随着核心板走的。

3) 核心板运行故障定位

接上串口助手定位核心板具体故障点。结果问题不再复现。(有可能加大测试量会出,后续测试以千次以上为标准)

难道是UART上的干扰造成的?

回想起年前批量事故:UART上脏数据引起系统误入uboot调试模式。最终解决办法是软件上在uboot启动阶段不对UART进行响应。

另外发现输入电源线靠近和远离核心板调试串口UART1,问题的发生概率也有明显区别。似乎都指向了是UART1干扰造成了核心板启动失败。

针对UART1悬空易受干扰的问题,可以通过接上拉电阻的方式避免。如下图所示。

图2 UART的上拉电阻作用

因此在UART1的TX和RX线上接上上拉电阻复测。结果在200次左右还是复现了问题。

4) 更改启动方式

有没有可能还是eMMC传输不稳造成的?

将ARM系统启动方式改为从TF卡启动再进行复测,未再复现系统启动失败现象。

似乎还是和eMMC有关。

2. 第二阶段

将问题核心板连同设备寄给核心板方案商分析。方案商通过各种测试对比,认为是上电时序未合理控制的问题,底板先上电造成串电引起核心板启动异常,具体漏电点未查明。

3. 第三阶段

根据方案商提供的线索,排查具体的漏电点。

1) 更改上电时序

图3 电源方案示意图

如图3更改上电时序,无论是采用电源优化方案1还是电源优化方案2,即核心板上电后再控制主控板5V后上电或者3.3V后上电,都无法复现系统启动失败的现象。

2) 接口排查

  • 断开核心板与STM32F103的通讯口UART2,复现问题,排除UART2的可能性。
  • 断开显示屏,未复现问题;显示屏相关电路嫌疑很大。

PS: 断开显示屏,无法再通过观察显示来判断系统是否正常启动,因此采用替代方案,即通过观察输入电流的变化来识别。异常启动过程,电流增大到350mA左右会停止一段时间,然后降低到220mA,而正常启动过程,电流会继续增大到500mA以上,然后再降低到350mA左右。

3) 显示接口排查

显示接口包括MIPI、I2C和GPIO口,如图1所示。

询问方案商I2C1连接情况,方案商反馈I2C1在核心板上用于PMU和ARM之间的通讯,并截了一段相关原理图过来。如图4所示

图4 核心板上I2C1连接情况

根据这部分截图,找到核心板上R2、R3位置,使用示波器抓取I2C1和NVCC_SNVS_3V3波形。

图5中紫色线是NVCC_SNVS_3V3的波形,绿色线是I2C1_SDA的波形。当发生启动异常的时候,NVCC_SNVS_3V3正常上电,但I2C1出现异常。不过,从这波形来看,I2C1波形异常是结果,而不是原因。

图5 I2C1波形监测

联想到图4中I2C1的上拉电阻,灵感一闪,如果上电时序会影响,是否主控板上的电压通过上拉电阻,反灌到核心板上的NVCC_SNVS_3V3。如图6所示,是目前的I2C1挂载情况。

I2C1挂载了核心板上的PMU,同时还挂载了TC358775XBG和触摸。且核心板上上拉电压NVCC_SNVS_3V3和主控板上上拉电压VCC_SYS_3V3上电时序不一致。

图6 I2C1挂载情况

检测NVCC_SNVS_3V3和VCC_SYS_3V3电压波形和上电时序,如图7所示。图中,紫色线为VCC_SYS_3V3波形,蓝色线为NVCC_SNVS_3V3波形。很明显,VCC_SYS_3V3比NVCC_SNVS_3V3早上电20ms,同时VCC_SYS_3V3对NVCC_SNVS_3V3有影响,如黄色圈出部分,有一个120mv左右的电压台阶。

图7 3.3V上电波形对比

比较可惜的是,一直未抓到异常时的NVCC_SNVS_3V3和VCC_SYS_3V3对比电压波形。去除主控板和显示板上的I2C1上拉电阻,复测,未再出现启动失败的现象,波形如图8所示,电源台阶也消除了(绿色波形)。

图8 只保留核心板上拉电阻后的NVCC_SNVS_3V3波形

对于NVCC_SNVS_3V3异常会怎样影响PMU或者IMX8M,目前还没弄清楚,留待后续能力提上来再进行分析。

有没有可能从I2C1总线直接反灌到IO口呢?

我认为是不太可能的。I2C总线内部使用的是漏极开路驱动器,因此SDA和SCL可以被拉低为低电平,但是不能被驱动为高电平,这也是I2C总线需要接上拉电阻的原因。

对于漏极开路结构,输出端不会漏电到栅极。从启动异常的波形上看,也没有出现异常源漏极导通的情况。

图9 I2C总线内部结构

增加另一个实验,可以进一步辅助证明I2C总线影响的不是I/O,而应该是影响了PMU的电源启动逻辑。I2C2挂载了RTC和光源,在核心板上未配备上拉电阻。去除主控板和显示驱动板上的I2C1上拉电阻,保留I2C2的上拉电阻,进行开关测试,连续测试上千次,未复现启动失败的问题。

有没有可能MIPI信号漏电到核心板造成启动失败?

去除主控板和显示驱动板上的I2C1上拉电阻,并断开I2C1的连接,连续测试上千次,也未复现启动失败。

至此,可以确认就是主控板和核心板的上电时序未进行合理控制,主控板上的VCC_SYS_3V3通过上拉电阻,影响到NVCC_SNVS_3V3,进而因此PMU上电时序紊乱。

三. 遗留问题

1. NVCC_SNVS_3V3异常是如何影响PMU上电时序的?

2. 为什么IMX8M的调试串口会影响系统启动失败的发生概率?

3. 为什么采用TF卡启动方式,不会造成系统启动失败?

四. 参考资料

1.UART的抗干扰设计

2.IMX8M核心板偶发系统启动失败排查实录

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

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

相关文章

Android持久化技术—SharedPreferences存储

文章目录 Android持久化技术—SharedPreferences存储将数据存储到SharedPreferences中Context类中的getSharedPreferences()方法Activity类中的getPreferences()方法PreferenceManager类中的getDefaultSharedPreferences()方法 从SharedPreferences中读取数据 Android持久化技术…

【自动驾驶】ROS远程节点的分布式通信

目录 固定IP的设置将IP地址改成手动配置文件修改配置主从机的~/.bashrc 文件配置主机的 IP 地址配置从机IP ROS是一个分布式计算环境。一个运行中的ROS系统可以包含分布在多台计算机上多个节点。根据系统的配置方式,任何节点可能随时需要与任何其他节点进行通信。 …

XSS靶场————XSS.pwnfunction

目录 第一关:Ma Spaghet! 第二关:Jefff 第三关:Ugandan Knuckles​编辑 第四关:Ricardo Milos ​编辑 第五关:Ah Thats Hawt​编辑 第六关:Ligma 第七关:Mafia​编辑 第八关&#xff1a…

交易系统JVM内存优化

背景 新交易系统上线以后,业务指标(成单率)和系统指标(CPU、QPS、JVM内存)是我们重点关注的指标。 CPU较高:可以通过Arthas等工具查看繁忙线程的堆栈信息,定位具体的代码,具体分析…

谷歌浏览器字体模糊不清怎么办

许多小伙伴在使用谷歌浏览器时,可能都遇见过字体模糊不清的情况,这将对我们的浏览体验大打折扣。为了解决这以问题,本文将为大家带来谷歌浏览器字体模糊不清的解决方法,帮助你享受到更清晰舒适的阅读环境。(本文由chro…

聚星文社AI工具官方

聚星文社是一键AI推文生成工具超强功能极速版介绍聚星文社AI工具官方https://docs.qq.com/doc/DRU1vcUZlanBKR2xy 同时集成原创和反推搬运功能 并可一键切换MJ或SD进行批量出库 一键自动智能分镜或手动快速分镜 精准排布镜头功能全预设 超简化流程 3秒即可完成参数配置全网最全…

Java 并发(五)—— 线程池

线程池核心参数?(核心线程数、最大线程数、任务队列)线程池构造方法中除了保存参数以外还要做什么事?(设置线程工厂、任务拒绝策略)提交任务时线程池要做什么?(任务执行机制&#xf…

Golang Map 深度剖析:原理、实践与面试要点

嘿,小伙伴们!我是 k 哥。今天,咱们来聊聊 Map 。 在 Go 语言这个神奇的世界里,Map 这个有点神秘的数据结构一直都是开发者们特别关注的。 你是不是在用 Map 的时候,对它里面咋工作的感到好奇?是不是碰到复杂操作的时候,特别想弄明白它背后的原理?别着急,今天这篇文章…

Java流程控制06:嵌套for循环

本节教学视频链接:https://www.bilibili.com/video/BV12J41137hu?p41&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5https://www.bilibili.com/video/BV12J41137hu?p41&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 在Java中,‌嵌套for循环是指将…

使用三菱PLC源码进行PLC读取写入操作

安装 MX Component 。 我的安装地址在: 打开 utl 文件夹下的 Communication Settings Utility 执行。 配置PLC 添加当前需要配置的PLC 注意 logical station Namber 就是程序里需要对接的逻辑站点编号 5.配置选择对应的COM操作选择对应的cpu型型号,…

Ah That‘s Hawt

目录 一、题目 二、思路 三、payload 3.1 方案一 3.1 方案二 四、思考与总结 一、题目 <!-- Challenge --> <h2 id"will"></h2> <script>smith (new URL(location).searchParams.get(markassbrownlee) || "Ah Thats Hawt")sm…

甄选系列“论软件开发过程RUP及其应用”,软考高级论文,系统架构设计师论文

论文真题 RUP(Rational Unified Process)是IBM公司的一款软件开发过程产品,它提出了一整套以UML为基础的开发准则,用以指导软件开发人员以UML为基础进行软件开发。RUP汲取了各种面向对象分析与设计方法的精华,提供了一个普遍的软件过程框架,可以适应不同的软件系统、应用…

ant -design 框架以及具体调试

1.介绍 Ant-Design-Vue 是一个基于 Ant Design 设计体系的 Vue 实现。Ant Design 是由阿里巴巴开源的一个企业级 UI 设计语言&#xff0c;旨在提升用户体验和开发效率。Ant-Design-Vue 将 Ant Design 的设计理念和组件库带入了 Vue 生态系统&#xff0c;使得开发者能够在 Vue …

RabbitMQ集群 - 普通集群搭建、宕机情况

文章目录 RabbitMQ 普通集群概述集群搭建数据准备启动容器宕机情况 RabbitMQ 普通集群 概述 1&#xff09;普通模式中所有节点没有主从之分&#xff0c;所有节点的元数据&#xff08;交换机、队列、绑定等&#xff09;都是一致的. 例如只要有任意一个节点上面 新增交换机&…

迈出Python自动化测试的第一步

一、思考❓❔ 1.什么是性能自动化测试? 性能 系统负载能力超负荷运行下的稳定性系统瓶颈 自动化测试 使用程序代替手工提升测试效率 性能自动化 使用代码模拟大批量用户让用户并发请求多页面多用户并发请求采集参数&#xff0c;统计系统负载能力生成报告 2.Python中的性能自…

C++竞赛初阶L1-12-第五单元-while(27~28课)531: T456440 含 k 个 3 的数

题目内容 输入两个正整数 m 和 k&#xff0c;其中 1<m≤1015&#xff0c;1<k≤15 &#xff0c;判断 m 是否恰好含有 k 个 3&#xff0c;如果满足条件&#xff0c;则输出 YES&#xff0c;否则&#xff0c;输出 NO。 输入格式 输入一行&#xff0c;为两个整数 m,k&#x…

【js面试题】js原型,原型链?有什么特点

在 JavaScript 中&#xff0c;原型&#xff08;Prototype&#xff09;和原型链&#xff08;Prototype Chain&#xff09;是实现继承和共享属性与方法的核心机制。理解它们对于深入掌握 JavaScript 的对象模型非常重要。 原型&#xff08;Prototype&#xff09; 每个 JavaScri…

24年上半年天融信营收缩减1.8亿,亏损2.06亿

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s?…

建筑三剑客:平面、剖面与立面图解析

平面图、剖面图与立面图是建筑学中不可或缺的工具&#xff0c;它们共同构成了建筑设计的基础。平面图展示了建筑物的顶部视图&#xff0c;详细标出了房间布局和空间关系。剖面图则揭示了建筑的内部结构&#xff0c;包括楼层分布和垂直交通。而立面图呈现了建筑的外观&#xff0…

【学习笔记】Matlab和python双语言的学习(一元线性回归)

文章目录 前言一、一元线性回归回归分析的一般步骤一元线性回归的基本形式回归方程参数的最小二乘法估计对回归方程的各种检验估计标准误差的计算回归直线的拟合优度判定系数显著性检验 二、示例三、代码实现----Matlab四、代码实现----python回归系数的置信区间公式残差的置信…