硬件基础知识(12)---为什么我的处理器这么耗电?原因不只是一个小小的限流电阻.
为什么我的处理器这么耗电?原因不只是一个小小的限流电阻...
记得有一次,客户拿着处理器板走进我的办公室,说它的功耗太大,耗尽了电池电量。由于我们曾骄傲地宣称该处理器属于超低功耗器件,因此举证责任在我们这边。我准备按照惯例,一个一个地切断电路板上不同器件的电源,直至找到真正肇事者,这时我想起不久之前的一个类似案例,那个案例的“元凶”是一个独自挂在供电轨和地之间的LED,没有限流电阻与之为伍。LED最终失效是因为过流,还是纯粹因为它觉得无聊了,我不能完全肯定,不过这是题外话,我们暂且不谈。
从经验出发,我做的第一件事是检查电路板上有无闪闪发光的LED。但遗憾的是,这次没有类似问题的希望曙光。另外,我发现处理器是板上的唯一器件,没有其他器件可以让我归咎责任。客户接下来抛出的一条信息让我的心情更加低落:通过实验室测试,他发现功耗和电池寿命处于预期水平,但把系统部署到现场之后,电池电量快速耗尽。此类问题是最难解决的问题,因为这些问题非常难以再现“第一案发现场”。这就给数字世界的问题增加了模拟性的无法预测性和挑战,而数字世界通常只是可预测的、简单的1和0的世界。
在最简单意义上,处理器功耗主要有两方面:内核和I/O。当涉及到抑制内核功耗时,我会检查诸如以下的事情:PLL配置/时钟速度、内核供电轨、内核的运算量。有多种办法可以使内核功耗降低,例如:降低内核时钟速度,或执行某些指令迫使内核停止运行或进入睡眠/休眠状态。如果怀疑I/O吞噬了所有功耗,我会关注I/O电源、I/O开关频率及其驱动的负载。
我能探究的只有这两个方面。结果是,问题同内核方面没有任何关系,因此必然与I/O有关。这时,客户表示他使用该处理器纯粹是为了计算,I/O活动极少。事实上,器件上的大部分可用I/O接口都没有得到使用。
“等等!有些I/O您没有使用。您的意思是这些I/O引脚未使用。您是如何连接它们的?”
“理所当然,我没有把它们连接到任何地方!”
“原来如此!”
这是一个令人狂喜的时刻,我终于找到了问题所在。虽然没有沿路尖叫,但我着实花了一会工夫才按捺住兴奋之情,然后坐下来向他解释。
典型CMOS数字输入类似下图:
图1.典型CMOS输入电路(左)和CMOS电平逻辑(右)
当以推荐的高(1)或低(0)电平驱动该输入时,PMOS和NMOS FET一次导通一个,绝不会同时导通。输入驱动电压有一个不确定区,称为“阈值区域”,其中PMOS和NMOS可能同时部分导通,从而在供电轨和地之间产生一个泄漏路径。当输入浮空并遇到杂散噪声时,可能会发生这种情况。这既解释了客户电路板上功耗很高的事实,又解释了高功耗为什么是随机发生的。
图2.PMOS和NMOS均部分导通,在电源和地之间产生一个泄漏路径
某些情况下,这可能引起闩锁之类的状况,即器件持续汲取过大电流,最终烧毁。可以说,这个问题较容易发现和解决,因为眼前的器件正在冒烟,证据确凿。我的客户报告的问题则更难对付,因为当您在实验室的凉爽环境下进行测试时,它没什么问题,但送到现场时,就会引起很大麻烦。
现在我们知道了问题的根源,显而易见的解决办法是将所有未使用输入驱动到有效逻辑电平(高或低)。然而,有一些细微事项需要注意。我们再看几个CMOS输入处理不当引起麻烦的情形。我们需要扩大范围,不仅考虑彻底断开/浮空的输入,而且要考虑似乎连接到适当逻辑电平的输入。
如果只是通过电阻将引脚连接到供电轨或地,应注意所用上拉或下拉电阻的大小。它与引脚的拉/灌电流一起,可能使引脚的实际电压偏移到非期望电平。换言之,您需要确保上拉或下拉电阻足够强。
如果选择以有源方式驱动引脚,务必确保驱动强度对所用的CMOS负载足够好。若非如此,电路周围的噪声可能强到足以超过驱动信号,迫使引脚进入非预期的状态。
我们来研究几种情形:
1.在实验室正常工作的处理器,在现场可能莫名重启,因为噪声耦合到没有足够强上拉电阻的RESET(复位)线中。
图3.噪声耦合到带弱上拉电阻的RESET)引脚中,可能引起处理器重启
2.想象CMOS输入属于一个栅极驱动器的情况,该栅极驱动器控制一个高功率MOSFET/IGBT,后者在应当断开的时候意外导通!简直糟糕透了。
图4.噪声过驱一个弱驱动的CMOS输入栅极驱动器,引起高压总线短路
另一种相关但不那么明显的问题情形是当驱动信号的上升/下降非常慢时。这种情况下,输入可能会在中间电平停留一定的时间,进而引起各种问题。
图5.CMOS输入的上升/下降很慢,导致过渡期间暂时短路
我们已经在一般意义上讨论了CMOS输入可能发生的一些问题,值得注意的是,就设计而言,有些器件比其他器件更擅长处理这些问题。例如,采用施密特触发器输入的器件能够更好地处理具有高噪声或慢边沿的信号。
我们的一些最新处理器也注意到这种问题,并在设计中采取了特殊预防措施,或发布了明确的指南,以确保运行顺利。例如,ADSP-SC58x/ADSP-2158x数据手册清楚说明了有些管脚具有内部端接电阻或其他逻辑电路以确保这些管脚不会浮空。
最后,正如大家常说的,正确完成所有收尾工作很重要,尤其是CMOS数字输入
硬件基础知识(12)---为什么我的处理器这么耗电?原因不只是一个小小的限流电阻.相关推荐
- Linux设备驱动开发详解【二】_设备驱动相关硬件基础知识
本文简介 本文讲解底层驱动工程师必备的硬件基础,给出了嵌入式系统硬件原理及分析方法的全景视图. 2.1 节讲解微控制器.微处理器.数字信号处理器以及应用于特定领域的处理器各自的特点. ...
- 《SAP入门经典(第4版•修订版)》——3.2 SAP硬件基础知识
本节书摘来自异步社区<SAP入门经典(第4版•修订版)>一书中的第3章,第3.2节,作者:[美]George Anderson著,更多章节内容可以访问云栖社区"异步社区" ...
- 嵌入式硬件基础知识汇总<附带与硬件密切相关的软件介绍>
嵌入式硬件基础 1,存储器 1.1 概念 1.2,存储器结构模型 1.3,存储器性能指标 1.4,嵌入式存储器类型 1.4.1,只读存储器 1.4.2,随机存储器 1.4.3,双端口RAM 1.4.4 ...
- 硬件基础知识---电阻的用法
硬件基础知识---电阻的用法 简介 电阻的特点是阻挡电能,电阻的关键参数有尺寸.阻值.精度和功率.电阻的应用场景非常多,都是围绕着电阻的特性来使用的.我们重点讲一下实际工作中遇到的电阻的功能,理论知识 ...
- 计算机硬件基础知识微盘,第1章 电脑硬件基础知识.pdf
第1章 电脑硬件基础知识 企业级的 DIY与个人用户有所不同:它要求专业人员对硬件的了解更多,在 DIY过程中, 应该知晓每一种硬件的技术参数在实际工作中的应用价值:本章重点介绍电脑主机设备的主流 和 ...
- 全国计算机技术与软件专业技术资格(水平)考试【软件评测师】-考试内容总结(一)计算机系统构成及硬件基础知识...
全国计算机技术与软件专业技术资格(水平)考试 软件评测师--考试内容总结 By林雨辰2014.11.08 1.计算机系统构成及硬件基础知识 1.1计算机系统的构成 1.1.1设计电子数字计 ...
- 硬件基础知识---如何设计一个三极管放大电路
硬件基础知识---如何设计一个三极管放大电路 设计步骤 1) 分析设计要求 电压增益可以用于计算电压放大倍数:最大输出电压可以用于设置电源电压 输出功率可以用于计算发射极电流:在选择晶体管时需要注意频 ...
- 计算机软件硬件基础知识,计算机软硬件基础知识
计算机软硬件基础知识 ▲电脑硬件基础知识 ★1.了解电脑的基本组成 一般我们看到的电脑都是由:主机(主要部分).输出设备(显示器).输入设备(键盘和鼠标)三大件组成.而主机是 电脑的主体,在主机箱中有 ...
- 计算机硬件和软件的基础知识,计算机软件和硬件基础知识
计算机软件使人们能够在日常活动中完成所需的工作.对计算机软件的更复杂定义是:软件是使计算机能够执行特定任务的程序,与系统的物理组件相反.系统的物理组件是我在上一篇文章中讨论的内容,即人们可以物理触摸的 ...
最新文章
- checkbox居中 editor_C1FlexGrid绑定自定义Editor-C1CheckBox
- 控制器如何跳转web-inf下的项目_第一次开发项目感想
- kuangbin大数模板(加法和乘法)
- 解决方案:IndentationError: unindent does not match any outer indentation level
- python入门——P44魔法方法:简单定制
- 加载图片时报错,请大虾帮忙看看!
- 表上作业法求解运输问题----python生成初始解
- linux安装ipk游戏,添加软件包 IPK
- 【毕业设计】基于单片机的心率血氧健康监测手表 - 物联网 嵌入式
- 用Python多线程抓取并验证代理
- seo秘籍,seo秘籍-自学seo零基础知识入门优化教程
- MySQL ERROR 1698 (28000) 错误
- unity 动画控制器
- Origin画图标签常见语法
- python3.6的新特性:f-strings格式化输出;python3.8新特性:f-strings增加了 = 说明符
- 磁敏感定量成像技术的基本方法和临床应用
- 中国交通标志牌数据集TT1OOK中的类别ID及其图标罗列以及含义详细介绍
- Oracle索引与where
- 云计算的三个应用实例
- 密码学笔记5 非对称密钥算法