您如何确定新的微控制器是否有故障?


11

我从未处理过来自数码相机的故障部件,但是我收到的3台新Atmel ATmega164A一直表现出极其奇怪的性能。

我将其范围缩小到与时钟有关,结果表明,所谓的“经过工厂校准”的内部振荡器产生的时钟信号在650-700 kHz之间抖动,而不是原来的1 MHz。我能够写入校准字节以使其非常接近1 MHz(仍然有些抖动),并且大多数情况下都可以正常工作,但是UART的工作方式并不正常,无论它们似乎输出连续的短脉冲流您要求他们做什么。

我已经处理过此微控制器的低功耗版本(164P),零问题,并决定将其放下并检查时钟输出,以及其稳定的1 MHz且无抖动。我倾向于得出这些164A芯片有缺陷的结论,但是我还有其他测试可以尝试确认这一点吗?


编辑:只是以为我会描述我测量时钟的过程。我已经启用了时钟输出熔丝位,并使用逻辑分析仪以很高的速率测量了适当的引脚。我有一个程序可以写入校准寄存器,OSCCAL并且已经能够尝试并尝试将错误频率提高到1 MHz。


编辑#2:经过进一步调查,似乎在一定程序大小后,微控制器开始工作阈。一个带有一个源文件并闪烁一个LED的简单项目似乎没问题,但是编译并链接我的任何其他文件(例如UART库或任何其他文件)而没有对这些方法进行函数调用都会导致微控制器在上述行为。电源连接良好,已进行了正确的去耦。目前我没有时间进一步调试它,因此我们改用了低功耗版本。我不确定确切的问题可能出在哪里1)164A和164P不兼容代码2)这两个uC的编程步骤不同3)单元有故障。我对我们的电路板设计充满信心,并将排除电源问题。不幸的是,我不能真正选择正确的答案,所以我将这个问题保留原样-也许我 将来会再次回到该问题。感谢所有提供有见地的评论或答案的人,它们对于开箱即用的uC问题可能对其他人很有用。


与您的问题没有直接关系,但值得一提。许多IC制造商都有勘误页面,当他们发现某些芯片修订版中的错误时会发布该页面。我被一个我从未检查过的勘误表中的已知错误困住了好几次。这些通常不像时钟无法运行那么大,并且通常提供一些解决方法。但是在您的情况下,没有已知的勘误表。
2011年

1
@jon,如果高功率版本坏了,而低功率版本有效,则可能是您的电路解耦不好,并且存在电源完整性问题。
Kortuk 2011年

@Kellenjb,数据表中此型号的“未知的勘误”(显示的最新数据表,06/11)。当然值得一提,谢谢。
乔恩·L

@Jon Yeah,这就是我的意思,“但是在您的情况下,没有已知的勘误表。”
2011年

1
我要说的是科尔特克所说的。这对我来说就像是电源或去耦问题。
奥林·拉斯罗普

Answers:


3

那种失败很少见。您可能希望在引脚上看到更多的噪声,或者使该引脚完全不起作用。但是很少有“有些工作,但不是有用的方法”。我怀疑存在导致问题的设计问题,并且与164A和164P之间的差异有关。由于抖动很高,因此我将研究功耗相关的问题。是否已连接所有电源/ GND引脚?I / O引脚是被驱动还是被拉高或拉低?等等。

但是仍然存在零件损坏的可能性。它很少见,但并非闻所未闻。唯一真实的告诉方法是从其他供应商那里获取更多零件,然后尝试使用。如果它们有效,则需要进一步调查,以查看是否在处理/焊接中杀死了它们,或者它们确实确实来自Digikey。


2
如果有机会,我将三重检查所有内容。我也对自己的结论表示怀疑,认为这种想法不会在工厂被发现,或者在过渡过程中被损坏的可能性似乎极小……将再次报告。
乔恩·L

连接方面,一切都检查完了。我将编辑问题以提供更多详细信息...
Jon L

2

我曾经对基准Microchip零件有一个非常相似的问题。我们搞砸了ICSP编程,正在寻找一种方法来消除振荡器的摆幅,从而导致内部时钟精度出现严重误差。确保正确连接了编程夹具和/或编程工具并正确使用了它们。

没有编程零件就没有简单的方法来验证振荡器的精度,因此我只编写了一个琐碎的端口切换程序(除了摆动I / O线之外什么都不做),然后让其他人对振荡器进行编程。零件,最好使用不同的编程硬件。验证摆动后,您可以使用自己的代码重新刷新,然后查看问题是否仍然存在。


我启用了时钟输出熔丝位,并将时钟信号置于PORTB的引脚上。这就是我要确定振荡器/时钟精度的采样。我会仔细检查编程过程和工具,谢谢。
乔恩·L
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.