我从来没有处理过 digikey 有缺陷的零件,但是我收到的 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 问题的人有用。