当前位置:网站首页 >> 产品/行业资讯 >>

不要忽略默认的MCU设置进行调试

不要忽略默认的MCU设置。

调试是嵌入式设计的重要组成部分,必须弥合硬件/软件之间的鸿沟。

在系统级别,嵌入式设计的功能越来越多地由固件定义,因此,为了避免漏洞,经过特定培训的工程师需要在项目的设计阶段紧密合作。

这也意味着,当不可避免地出现漏洞时,需要抑制彼此推脱的冲动。

也许正是软件定义的硬件特性使现代嵌入式设计成为一个有趣的行业。

每个新的微控制器(MCU)似乎都提供了更高级别的集成和更高级的功能,但是直到对其进行编程后才完全启用。

尽管这种集成和配置显然是一个促进因素,并且正在为产品设计带来巨大进步,但有时可能会给工程师带来无法预料的问题。

诸如MCU之类的嵌入式组件所提供的功能和可配置功能正在不断改进,并且这些组件提供了并非每种设计都需要的许多功能。

这些附加功能可能会被忽略,从而导致较少的问题。

正如大多数工程师所了解的那样,这些功能通常由寄存器控制,这些寄存器可以通过软件进行修改。

因此,它们在打开时具有默认设置,并且如果保持不变,它们将继续在这些默认设置下运行。

在许多情况下,这可能不会引起问题。

但是,如果这些功能尚未使用,并且可能尚未经过测试,则可能会以意想不到的方式产生影响。

由常规功能引起的系统中可能会产生漏洞,而这些功能可能会被忽略。

即使在理想条件下,查找故障也可能很困难,耗时且成本高昂。

通常,我们通过故障的影响来识别故障,这些故障通常为工程师提供足够的证据来追踪原因。

故障原因与硬件或软件有关。

在很大程度上,这并不重要,但这可能仍存在争议。

重要的是找到并修复故障。

如果失败的原因是未正确初始化的低级功能,那么找到它会变得更具挑战性。

为了了解硬件平台的初始状态如何影响整个设计,有必要对整个系统有更高的了解,并且跟踪这些难以捉摸的条件会消耗大量资源。

例如,MCU上的SPI总线访问串行闪存是许多嵌入式系统中使用的相对简单的功能。

如果在存储的值中检测到错误,则表明存储(不是MCU)有故障。

这是客户的经验。

从闪存的状态寄存器连续读取时,它提示找到读/写错误。

自然地,该存储设备被认为是有故障的。

该理论源于以下事实:如果在状态寄存器读取之间设置了短延迟,则检测到的故障数量似乎会减少。

此外,重新启动电源似乎可以清除故障一段时间。

客户工程师认为,这些症状表明即使串行存储器仍在指定规格的周期限制之内,串行存储器也有故障,但仅完成了约60k的写周期。

当客户将串行闪存设备退还给我们进行进一步测试时,即使执行了超过30万次写周期,我们也没有发现任何故障。

为了找到真正的故障,我们的工程师调查了客户的应用并探索了SPI信号。

我们发现这似乎是存储设备的故障,但是实际上这是系统噪声问题,可以轻松解决。

尽管部分原因是由于MCU与闪存之间的PCB走线阻抗不匹配,但噪声并不完全是由于不良的PCB设计或信号完整性问题所致。

尽管这似乎是PCB或电路设计问题,但噪声实际上是SPI信号的过冲和下冲,这是由信号的过高驱动强度引起的。

该过冲足以影响闪存设备的电荷泵并引起读取和写入错误。

在某些情况下,SPI信号的过冲和下冲也可以解释为信号跳变,这也可能导致读取或写入错误。

跟踪图像显示了SPI线上的过冲和下冲。

这里的要点不是闪存设备如何努力应对大量系统噪声,而是MCU上的可配置功能可能会引入一些效果,而这些效果很容易被误认为是设计。

系统中的其他设备正在发生故障。

在这种情况下,我们通过一种有效的方法检测了设计中的故障,并通过我们的工程师的努力解决了问题。

也许我们真正可以学到的东西

欢迎您的咨询