0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数字接口中的系统级噪声如何导致串行闪存中的虚假错误

韩刚龙 来源:皮皮鲁鲁鲁皮 作者:皮皮鲁鲁鲁皮 2022-07-21 10:16 次阅读

在系统级不断追求更高性能的过程中,集成设备制造商 (IDM) 已经精通开发能够在具有挑战性的电气环境中高速运行的。标准接口,如 SPI 和 I2C,提供了一种相对简单的方法,以可靠和有效的方式互连来自不同供应商的设备。其他类型的接口也是如此。

可以将数字域视为为希望使用“标准”技术快速构建复杂系统的开发人员提供的避风港。事实上,嵌入式行业很大程度上依赖于“正常工作”的基于标准的接口,因为它们为创新提供了框架。当它们不“正常工作”时,可能会导致混乱,尤其是在错误解释错误原因的情况下。任何混淆都是可以理解的,因为这些接口在按照规范应用时是健壮和可靠的。底层物理接口固定在硅片中的事实也可以提供保证。

各种形式的系统噪音、

信号的任何失真都可以被解释为噪声,并且可以合理地假设噪声在通信环境中最常见;收到的信号不是发送的信号。这种直接相关性比较容易找到,但在某些情况下,因果关系并不那么容易确定。当故障变得间歇性时,挑战变得更加复杂。

当今的微控制器旨在以最少的配置提供可靠的操作。在串行接口的情况下,这可能包括默认为 I/O 引脚上的高驱动电流,以对抗长 PCB 走线或高容性负载的影响。在某些情况下,这可能导致接口过度驱动,进而导致衍生效应被解释为错误或故障。

例如,串行闪存设备提供了许多高级功能,可确保可靠运行并允许对设备进行查询。这可以包括噪声过滤器、高级自适应编程和管理单元余量的擦除算法。一些制造商还在存储元件中包含 ECC,以在每次写入操作时保存额外的元数据,以允许检测和纠正单个或多个位错误,但当噪声破坏通信接口总线上的基本消息事务时,此 ECC 修复将无济于事。

SPI 接口上的噪声可能会被误解为额外的时钟脉冲。由于 SPI 是时钟驱动的接口,因此会产生一些影响,例如命令被忽略、数据被误解、使用错误命令等。但是,噪声也带有能量,在某些情况下,这种能量本身会在设备操作中引入错误.

电荷泵和过冲

在大多数情况下,数字接口可以容忍信号中的一些过冲或下冲。然而,不应忘记曲线下的能量仍然存在,并且在某些电路中这可能是破坏性的。

一个典型的例子是串行闪存中的电荷泵电路。如果 SPI 总线信号包含大量噪声,则该信号中的能量可能会传播到电荷泵并破坏其运行。

闪存中的电荷泵是一项关键功能,因为它提供了改变存储单元偏置所需的功率,并有效地存储逻辑 1 或 0。写入/擦除过程是闪存操作的关键时刻内存,在此期间对电荷泵的任何中断都可能导致写入或擦除错误,虽然可以检测到这些错误,但它们有可能不会很明显。

这种错误很容易被解释为闪存设备中的故障。嵌入式设计人员非常了解闪存具有制造商保证的有限数量的读写周期这一事实,但可能不太了解的是提供没有太多过冲或下冲的干净接口的重要性。

例如,考虑图 1 中的图像。它显示了六个闪存设备的健康单元边距。在用表示逻辑 1(2V 至 5V)和 0(>6v)的数据编程的单元之间出现了两种不同的模式。相比之下,图 2 中的图像显示了三个闪存设备的存储单元余量,这些设备因控制线上的过冲和下冲而遭受数据损坏。

pYYBAGLXT6uAA3h9AAD4Vaj0p0k905.png

图 1:该图显示了已编程和擦除的闪存的良好单元边缘分离数据。(来源:阿德斯托)

poYBAGLXT7GAUpTWAAIFSygvMFs590.png
图 2:该图显示了闪存的单元边缘分离数据较差,其中 SPI 线路上存在明显的噪声。(来源:阿德斯托)

多种因素会影响噪声水平,例如工作频率、信号幅度、MCU 驱动水平以及噪声尖峰中包含的能量。PCB 设计和信号之间的串扰也可能是影响因素。

图 2 中的数据显示了过度过冲和下冲对串行接口的影响。下面的图 3 显示了这种过冲在实际应用中的样子。


poYBAGLXT7eAQ6NaAAjBQ9wKZgo648.png

图 3:此迹线图像清楚地显示了 SPI 线路上存在的过冲和下冲导致 5.65V 的峰峰值电压,超过了闪存规范中记录的绝对最大值。(来源:阿德斯托)

这种噪声的结果是错误的设备操作,表现为串行闪存存储值中的错误。最初,错误的真正影响被忽略了,因为以较低频率轮询状态寄存器报告的错误较少,导致设计人员对故障的根本原因做出错误的假设。

确定真正的根本原因

尽管此故障表现为内存故障,但根本原因并非闪存设备。Adesto 工程师通过探测 SPI 信号并识别存在的系统噪声发现了这一点。虽然噪声可能部分归因于 MCU 和闪存之间的 PCB 轨道上存在的阻抗不匹配,但这并不是全部。

噪声的来源实际上是 MCU 接口,它在上电时默认为高驱动电平。过度驱动足以导致 SPI 线路上的过冲和下冲,在某些情况下可能会被误解为信号转换,从而导致读取或写入错误。然而,在这种情况下,发现过冲具有足够的能量来破坏 Flash 电荷泵,这反过来又会导致错误。

在客户的设计中,所使用的微控制器为其 I/O 提供了可配置的驱动电流,在启动时默认为 HIGH。由于应用程序代码在初始化期间没有修改此级别,因此它在正常操作中保持高电平。

对于 SPI 总线上的其他设备,这种影响可能并不明显,因为数字接口通常被设计成稳健的。闪存的敏感特性,需要以更高的频率运行,特别是电荷泵的运行,使存储器容易出现过冲/下冲。这导致了最初被误解为闪存设备故障的错误操作。

纠正错误

通过固件降低驱动电流可将过冲和下冲有效地减少为零(图 4),进而导致闪存的无错误运行。


poYBAGLXT8KAFcCmAAgkXTG2tgo900.png

图 4:没有明显的过冲,串行闪存的电荷泵能够正确运行并提供可靠的功能。(来源:阿德斯托)

故障的性质表明,Flash 设备正在尽一切努力补偿错误的影响,即 SPI 接口上的系统噪声过大。

也许这里最重要的一点是,原因实际上是所使用的 MCU 的设计特性,它默认为在大多数情况下完全可以接受的操作模式。高驱动输出和不完美的 PCB 电感相结合造成了导致间歇性故障的条件。通过简单的固件更改,减少 MCU 上的驱动输出,解决了这个问题。

这突出了这里真正的教训:看似真正的组件故障实际上可能是设计中的疏忽。更换存储设备本来是对最初认为是故障的自然反应,但通过客户和供应商以及硬件和软件工程团队之间的牢固工作关系,找到了实际原因并应用了正确的解决方案.结果是明显更好的设计、更高的系统性能和更高的可靠性。

结论

当没有明显影响时,系统噪音很容易被消除。在最佳条件下,间歇性错误特别难以定位,但当错误被误解时,挑战变得更加困难。

过冲可能是最不明显的系统噪声形式,但正如这里所解释的,它的影响可能很大。闪存是一种可靠的技术,但它依赖于精心设计的接口。串行接口上的过多噪声有可能传播到电荷泵电路,从而影响编程和擦除电路的操作。这会导致无法预料的特性,这些特性很容易被解释为设备本身的故障,表现为存储单元故障,以及不一致或不可靠的编程和擦除操作。

在这种情况下,更换闪存并假设问题已得到解决可能会导致产品上市,而这些产品可能会在某个时候失败。相反,设计人员能够将编程和擦除一致性提高一个重要因素,有效的耐久性从检测到错误之前不可接受的约 20K 周期跃升至超过 250 万个周期,没有错误,并且不需要补充错误检测和纠正例程。

现代微控制器提供的可配置性水平既可以看作是帮助,也可以看作是障碍。驱动电流可配置的事实可能是该示例中过冲的原因。然而,能够降低驱动强度对于解决问题也很有效。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 闪存
    +关注

    关注

    16

    文章

    1707

    浏览量

    114388
  • 数字接口
    +关注

    关注

    1

    文章

    71

    浏览量

    21863
  • IDM
    IDM
    +关注

    关注

    1

    文章

    116

    浏览量

    18799
收藏 人收藏

    评论

    相关推荐

    vfs_uart的代码导致口中断异常怎么解决?

    用flash代码”的错误。 分析过程如下: 【1】在vfs组件里,vfs_uart.c文件定义了select_notif_callback_isr()函数,它是定位在flash的代码片段。 static
    发表于 06-21 07:32

    如何将Littlefs安装到通过qspi连接到电路板的外部串行闪存上?

    我正试图在 XMC7100 V1.1 的 qspi 外部串行闪存闪存 littlefs 文件系统。 我看到库
    发表于 05-27 06:03

    串行音频接口(SAI)slot是什么意思?

    最近想使用STM32F746串行音频接口(SAI)发送音频数据给一个音频编解码芯片,在查看datasheet,出现很多次的slot,但是又没有详细地介绍slot到底是什么,里面包
    发表于 05-11 07:01

    昂科烧录器支持XinCun芯存科技的串行外设接口NAND闪存 XCSP4AAPK-IT

    芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表,其中XinCun芯存科技的串行外设接口NAND闪存 XCSP4AAPK-IT已经被昂科的通用烧录平台AP8000所支持
    的头像 发表于 03-26 18:16 220次阅读
    昂科烧录器支持XinCun芯存科技的<b class='flag-5'>串行</b>外设<b class='flag-5'>接口</b>NAND<b class='flag-5'>闪存</b> XCSP4AAPK-IT

    应用程序的服务器错误怎么解决?

    在使用应用程序时,可能会遇到服务器错误的问题。这种错误通常会导致应用程序无法正常运行 ,给用户带来不便。下面将介绍应用程序的服务器错误及其
    的头像 发表于 03-12 15:13 2112次阅读

    如何在ModusToolbox 3.0.0添加串行闪存库CAN?

    ; 没有这样的文件或目录\"。 似乎串行闪存库尚未设置。在库管理器1.0下,而我使用的是库管理器2.0,在管理器2.0下找不到串行闪存库。 在此先谢谢。
    发表于 01-24 07:09

    导致PLC信号干扰的错误操作

    以下是一些可能导致PLC(可编程逻辑控制器)信号干扰的错误操作。
    的头像 发表于 01-22 10:05 331次阅读

    光纤在植入式脑机接口中的应用

    光纤在植入式脑机接口中的应用  光纤技术作为一种传输信息的重要媒介,已经在各个领域得到了广泛的应用。而在现代医学领域中,光纤技术也逐渐发展出了许多新的应用,其中之一就是在植入式脑机接口中
    的头像 发表于 01-09 14:41 232次阅读

    HPM5300系列SEI串行编码器接口:如何设置通讯协议(上)

    01.串行编码器接口SEI的应用场景SEI串行编码器接口是HPM单片机独创的通信接口外设,可以在同一个硬件
    的头像 发表于 12-20 08:17 1460次阅读
    HPM5300系列SEI<b class='flag-5'>串行</b>编码器<b class='flag-5'>接口</b>:如何设置通讯协议(上)

    jtag接口和swd接口区别

    上的连接错误。它使用了一个标准的 20 针或 14 针接口,并且可以支持多个设备之间的串行和并行通信。JTAG 接口广泛应用于电路板
    的头像 发表于 12-07 15:29 4892次阅读

    PY25Q128HA串行接口闪存设备产品概述

    PY25Q128HA是一种串行接口闪存设备,设计用于各种大容量的基于消费者的应用程序,其中程序代码从闪存隐藏到嵌入式或外部RAM中进行执行。该设备灵活的擦除架构,其页面擦除粒度也是数据
    的头像 发表于 11-30 16:38 524次阅读
    PY25Q128HA<b class='flag-5'>串行</b><b class='flag-5'>接口</b><b class='flag-5'>闪存</b>设备产品概述

    PY25Q64HA串行接口闪存设备产品概述

    PY25Q64HA是一种串行接口闪存设备,设计用于各种大容量的基于消费者的应用程序,其中程序代码从闪存隐藏到嵌入式或外部RAM中进行执行。该设备灵活的擦除架构,其页面擦除粒度也是数据存
    的头像 发表于 11-29 16:45 714次阅读
    PY25Q64HA<b class='flag-5'>串行</b><b class='flag-5'>接口</b><b class='flag-5'>闪存</b>设备产品概述

    如何同时实现串行和并行模式下的数字接口,完成对外设LTC6915的访问?

    如何同时实现串行和并行模式下的数字接口,完成对外设LTC6915的访问
    发表于 11-14 06:12

    代码翻转RXDTS导致USB总线错误

    代码翻转RXDTS导致USB总线错误DTOG_RX翻转之后导致主机发送的DATA PID与USB设备端不匹配
    发表于 10-19 07:47

    详解数字电路的抖动

    随着通信系统的时钟速率迈入GHz,抖动在数字设计领域中日益得到人们的重视。在高速系统,时钟
    的头像 发表于 08-11 09:33 951次阅读
    详解<b class='flag-5'>数字</b>电路<b class='flag-5'>中</b>的抖动