被忽略的硬件常识

在《都是IO弱上拉惹的祸》文中,提及了Altera的CPLD在初始化时管脚通常会处于弱上拉状态。在实际示波器采样来看,就表现在上电初期IO脚会有一个短暂(当时是持续大约几百us)的高脉冲。虽然当时遇到的一些闪屏现象在外接一个10K下拉电阻后得到解决,但是近期又遇上换汤 不换药的类似问题。有了前车之鉴,问题定位很快。用示波器一采样,怪哉,在上电初期居然有1.68V左右的高脉冲,和上回唯一的不同是器件更换了,之前是 MAX II家族,而这次是Cyclone III家族。那么他们在上电弱上拉的一些细节上又有怎样的不同呢。

在同样的FPGA外部输出IO脚下拉了10K的电阻,用示波器采样到上电初期也确实有一个瞬间的高脉冲,这个高脉冲维持了200ms左右,而且电压值居然 高达1.68V,IO的电平是标准的LVTTL,高电平3.3V,那么1.68V差不多是减半的样子。由此推断,此时IO脚上的“弱上拉”好像不“弱”, 应该也在10K左右。推想归推想,将外部下拉的10K换成了4.7K,再一测试,闪屏现象虽然有所好转,但还是没有完全根除,抓取到上电初期的高 脉冲大约在1V多点。从理论上想,1V肯定不会被认为是TTL的高电平,但是为什么依然出现了高电平而使能背光的一个状况呢?翻看datasheet,在 图1所示的VLED on/off一行的高低电压参数中,2V~5.5V被认为是高电平开启背光,而低于0.8V被认为是低电平关闭背光。那么处于0.8V~2V之间的两不管 地带电平到底又会被认为是开还是关背光呢?实践告诉我们至少1V时是开背光了(当然也许长期的1V电压不会得到稳定的背光开启状态)。所以,再降低外接下 拉电阻才可能解决问题。 

图1
于是换成了2K的下拉,和预想的一样,此时的上电高脉冲在0.55V左右(满足Off Controller Voltage电压),完全印证了IO管脚内部上拉10K电阻的初步推断。关于上电弱上拉,其实也想到了JTAG的TCK/TMS/***上拉或下拉都用1K电阻也许与此也有一定的关系。此外,在Quartus II的管脚约束中有Weak Pull-Up Resistor一项,原本天真的以为这个选项可以更改IO管脚上电时的弱上拉开启与否,但是实践证明不是这样,至于具体的用法和功能,也没有在Handbook中找到,或许这个选项是用于设置IO正常工作期间内部是否进行弱上拉。

 其实在这里不是要再次强调这个所谓的上电弱上拉,而是想提一下数字电路中的电平标准。也就如标题所示,被忽略的硬件常识,至少近来或者说 一直以来都不太关心这个问题。电平标准,最常见就是TTL和CMOS,他们的异同优劣用不着我费口舌,大家肯定比我清楚。而在前面遇到的问题当中比较有意 思的就是1V这样即非高电平又非低电平的“悬浮状态”居然也“被高电平”了。

其实,还遇到了一个被疏忽的背光使能的问题,所以才需要发点感慨让自己清醒些。如图2所示,一颗升压芯片的电气特性截图,需要关心的是Enable Control Input一栏。

 

图2
在使用的这个升压电路中,VIN是5V,而使能信号想当然的用FPGA的3.3V TTL电平供过去了(之前有另一颗芯片按这个标准没有问题的),结果可想而知。出现的状况是无负载状态升压输出12V很稳定,一旦外接负载则输出跌落到仅有6V多,最终在图2的电气特性中才发现问题。被认为是High Voltage的最低电压应该是0.7*VIN,对于我的电路就是0.7*5V = 3.5V,而用FPGA的3.3V高电平供过去显然还没有“达标”,那么不稳定也就理所当然了。
其实,设计中我们有很多遗漏疏忽的考虑,究其根本原因也许不仅仅是我们看datasheet不够认真,不太细心。而是由于太多的先入为主的观念在影响着我们的思维,太多基本的硬件设计常识无形中被我们忽略了。我想,一个优秀的硬件工程师也许不是不犯错,而是“转”得快。

网友评论:很多时候还是需要比主电路动作早的电路先来Hold住,等主电路工作状态稳定了再放开。参考下文: 是鸟不死还是不死鸟 Is secular and is born of fire 微处理器监控电路是罕见的从出现以来没有多少发展变化的电路;第一款706从1993年上市到现在,历经了微处理器的世世代代,不同厂牌生产的706除了功耗有所降低,还是当初的概念、功能和性能。微处理器不断地提高其适应性,试图摆脱老不死的外部复位电路。事实是微处理器的改进和提高走得太远了,可以在很宽的电压范围内可靠地复位和工作,而系统的其它部分还不能正常工作。所以,微处理器监控电路浴火重生、承担了新的任务:上电伊始尽快强制微处理器复位,直到系统的其它部分可以工作了再释放对微处理器的限制。 微处理器的内部电路如果能在更低电压工作,一定会推出新的低电压工作的微处理器,不会只把低电压工作的特性留给监控部分使用。监控电路则一定是在更低的电压下开始工作,早早地输出复位信号;例如圣邦的全部监控电路在1V以上工作电压都可以有稳定、确定的复位输出。 “豪车摩登也得有手刹,飞机先进还得手工打堰儿”,简单的、自成体系的嵌入式微处理器可以不使用外部监控电路,需要外部配合协同工作的应用还是离不开监控电路协调控制。

永不止步步 发表于09-17 10:48 浏览65535次
分享到:

已有4条评论

  • 永不止步步
    永不止步步 09-17 10:54

    FPGA和CPLD在没有配置的情况下是弱上拉的;CPLD在写入程序后就是设定值。

  • 永不止步步
    永不止步步 09-17 10:53

    问个问题,它到底是弱上拉还是CMOS互补电路在建立起互补状态前和建立稳定的内部逻辑状态前的暂态导致的近半电位输出?

  • 永不止步步
    永不止步步 09-17 10:53

    小小的臆测分析一下。数字电路的输出很多是采用互补电路构成,在加电的瞬间,控制栅电压往往无法达到控制电压要求,导致出现瞬间高电平输出。因此搞清楚芯片的整体布局和接线情况,也许有更好的解决方案。比如是否支持加电顺序控制等,单纯的采用下拉电阻,在某些应用中也许并不是最好的选择。

  • 永不止步步
    永不止步步 09-17 10:53

    通常来说,用数字I/O控制模拟电路,经常碰到的就是集成电源芯片,一定要注意电压匹配。
    模拟电路总是会设计为能在一定电压范围内工作,“门限”也不精确,不像数字电路都有固定的工作电压和门限,二者结合不考虑整个模拟电路的全范围工作电压就一定会出问题。
    道理很简单,设计时注意一下就行了。这点东西也谈不上是高要求的细节,属于基本的设计常识。

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:308117个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号