完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
|
|
|
|
|
|
各种形式的系统噪声
任何信号失真都可解释为为噪声,可以合理地假设噪声在通信环境中最明显,收到的信号已不是最初发送的信号。这种直接相关性相对容易发现,但在某些情况下,因果关系不太容易识别。当故障间歇性出现时,问题就更加复杂了。 如今的微控制器设计目标是以最少的配置提供可靠的操作。对串行接口来说,这可能包括预先设置I/O引脚上的高驱动电流,用以应对较长的PCB走线或高容性负载的影响。在某些情况下,这可能会导致接口过度驱动,进而导致并被误读为错误或故障的衍生结果。 例如,串行闪存器件提供了许多高级功能,以确保可靠的操作并允许设备被询问。这可能包括噪声滤波器、高级自适应编程以及管理存储单元裕度的擦除算法。一些制造商还将ECC设计在存储元素中,从而在每次写入操作时保存额外的元数据,以允许检测和纠正单个或多个位错误,但是当噪声破坏了通信接口总线上的基本消息传输时,采用ECC修复错误将于事无补。 SPI接口上的噪声可能会被误读为附加的时钟脉冲。由于SPI是时钟驱动接口,因此可能会产生一些不良影响,例如命令被忽略、数据被误读、错误命令被使用等。但是,噪声也携带能量,在某些情况下,这种能量本身会在设备在操作过程中引入错误。 |
|
|
|
|
|
电荷泵和过冲
大多数情况下,数字接口可以忽略信号中的某些过冲或欠冲。但是,不要忘记,曲线下的能量仍然存在,在某些电路中这可能具有破坏性。 一个典型的例子是串行闪存中的电荷泵电路。如果SPI总线信号包含很大的噪声,则该信号中的能量可能会传播到电荷泵并干扰其工作。 闪存中的电荷泵承担着一项关键任务,即提供用于改变存储单元偏置并有效存储逻辑1或逻辑0所需的电源。写/擦过程是闪存操作中的关键时刻,在此期间电荷泵的任何中断都可能导致写入/擦除错误,尽管这种错误可能被检测出来,但也有可能被隐藏。 上述类型的错误很容易被误解为闪存器件的故障。闪存应具有制造商保证的有限次数的读写周期,对这一点,嵌入式设计人员完全了解。但他们不太了解的是,一个没有太多过冲或欠冲的简洁接口有多么重要。 例如,图1中的曲线显示了六个闪存器件的正常单元裕度。用代表逻辑1(2V至5V)和逻辑0(》 6v)的数据进行编程的存储单元之间出现了两种不同的模式。相比之下,图2中的曲线显示了三个闪存器件的存储单元裕度数据,这些闪存器件因为控制线路上的过冲和欠冲而导致数据损坏。 图1:此图显示了编程和擦除两种情况下,良好的闪存存储单元裕度数据。(来源:Adesto) 图2:此图显示了当SPI线上存在明显噪声时,糟糕的闪存存储单元裕度数据。(来源:Adesto) 有多种因素会影响噪声水平,例如工作频率、信号幅度、MCU驱动级别以及噪声尖峰中包含的能量。PCB设计以及信号间的串扰也可能成为影响因素。 图2中的数据显示了串行接口上太多过冲和欠冲造成的影响,图3则展示了实际应用中过冲是怎样的。 图3:该迹线清楚表明了,SPI线上的过冲和欠冲,导致5.65V的峰-峰电压值,该值超过了闪存规范中提到的绝对最大值。(来源:Adesto) 这种噪声可能导致错误的设备操作,表现为串行闪存存储值的错误。最初,错误的真正影响被忽略了,因为以较低频率轮询STATUS寄存器,报告的错误也少,从而导致设计人员对故障的根本原因做出误判。 |
|
|
|
|
|
找出根源
尽管此故障表现为内存故障,但根本原因并不在闪存器件。Adesto工程师通过探测SPI信号并识别系统噪声表征发现了这一点。虽然噪声的产生部分归因于MCU与闪存之间的PCB迹线上存在阻抗不匹配,但这还不是全部。 噪声源实际上是MCU接口,其在电源启动时默认为高驱动电平。驱动过量足以在SPI线上引起过冲和欠冲,在某些情况下,这可能被误读为信号跳变,从而导致读取和写入错误。而且,在这种情况下,过冲保持了足够的能量来破坏Flash电荷泵,这反过来又导致了错误。 在客户设计中,微控制器为其I/O接口提供可配置的驱动电流,启动时默认为HIGH。由于应用程序代码在初始化期间不修改此电平,因此在正常操作中它仍保持高电平。 对于SPI总线上的其它器件,这种影响可能并不明显,因为数字接口通常设计地很稳健。 而闪存的敏感特性,以及在高频下运行的需求,特别是电荷泵的运行,使得该存储器极易受到过冲/欠冲的影响。这导致了错误的操作,一开始就将其错误地理解为闪存器件的故障。 纠错 降低流经固件的驱动电流,可将过冲和欠冲有效地减少到零(图4),进而实现闪存的无错运行。 图4:在没有明显过冲的情况下,串行闪存的电荷泵能够正确运行并提供可靠的功能。(来源:Adesto) 故障特性表明,闪存器件正在尽一切努力补偿错误造成的影响,即SPI接口上过多的系统噪声。 最重要的是,产生错误的原因实际上是MCU采用的一项设计功能,这项功能被默认设置为大多数情况下完全可接受的工作模式。高驱动输出和不完善的PCB电感的结合,为间歇性故障的产生创造了条件。一个简单的固件修改,减少MCU上的驱动输出,即可解决该问题。 真正的教训在于:看起来确定的组件故障可能实际上是设计的疏忽。最初的误判自然导致存储器件的更换,但是通过客户和供应商、以及硬件和软件工程团队之间的紧密合作,一定可以找到真正的原因,进而采用正确的解决方案。最终,设计得以完善,系统性能更高、可靠性更高。 在没有明显影响的情况下,系统噪声很容易被忽略。在最佳条件下很难定位间歇性错误,但如果错误被误读,情况会更加糟糕。 过冲可能是最不明显的系统噪声形式,但是如上所述,其影响可能是巨大的。闪存是一种可靠的技术,但仍然取决于精心设计的接口。串行接口上的过多噪声有可能传播到电荷泵电路,可能损坏编程和擦除电路操作。由此产生的无法预料的特征很容易被误读为器件本身的故障,它表现为存储单元的故障,以及不一致或不可靠的编程和擦除操作。 在这种情况下,更换闪存以为问题已解决,可能会导致产品在某一时刻进入市场失败。反之,设计人员能够将编程和擦除一致性提高一个等级,使得有效容错能力从检测到错误之前不可接受的约20K个周期,跃升到超过2.5M个周期,并且没有错误,也不需要补充的错误检测和纠正程序。 现代微控制器提供的可配置水平是把双刃剑。在本文的示例中,驱动电流可配置也许是产生过冲的根本原因。不过,能够减小驱动强度对于解决该问题也有效。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
1461 浏览 0 评论
1225 浏览 1 评论
1228 浏览 0 评论
1681 浏览 1 评论
1903 浏览 1 评论
40mR/650V SiC 碳化硅MOSFET,替代30mR 超结MOSFET或者20-30mR的GaN!
1275浏览 1评论
1683浏览 1评论
6651浏览 1评论
1904浏览 1评论
5387浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 07:09 , Processed in 0.580286 second(s), Total 50, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1408