我得到了一个错误的ATmega328-PU。我该如何解决?


12

过去的某个时候,我使用Arduino IDE 在新一批的四个ATmega328-PU上刻录引导程序(注意328之后没有P-这是MCU的非微功耗版本,价格稍便宜,不要与ATmega328P-混淆)PU带有P),并且对来自avrdude的以下消息感到惊讶:

avrdude: Device signature = 0x1e950F 
avrdude: Expected signature for ATMEGA328 is 1E 95 14 
Double check chip, or use -F to override this check. 

这意味着avrdude认为该芯片不是其标签上所说的。然后,我将Arduino IDE上的芯片类型更改为ATmega328P-PU,而avrdude毫无抱怨地烧掉了引导加载程序。这意味着该芯片被标记为一个MCU,而在内部它被标记为另一个,略有不同。

我想知道的是:

  • 此事件有多罕见?有没有人有过类似的经历?原始问题,题外

  • 有可能解决这个问题吗?如何修复签名,以便avrdude正确识别芯片?

这是EE.SE交叉文章。我在这里发布了这个问题,但是并没有引起太多关注,所以我想看看我们社区中是否有人有类似的经历。


1
看来您的供应商只是将一些328P(此签名代表的意思)错误地标记为328s。
microtherion 2015年

Answers:


4

浏览sparkfun时,我发现了几则新闻,表明他们在贴错标签的筹码上的挣扎。这里有一些:

如果来自中国的新卖家提供IC,Sparkfun已收到可疑的装运。他们决定在将它们投入生产之前先对其进行测试,但他们的测试板均无法正常工作。使用硝酸,他们能够去除IC的外壳,并找到一块看起来像铜的金属块。

在另一篇文章中,他们解剖了Atmel的一些可疑IC,并在内部发现了一个ON半导体硅片。这些芯片不是功能性的ATmegas,但与其他芯片不同,它们确实具有硅。


3
你能把这个答案充实一点吗?总结您链接的文章将是一个不错的开始-现在,如果sparkfun由于任何原因而下降,您的答案将毫无价值。
Shog9 2014年

@ Shog9为什么?问题是根本。该答案是人们收到贴有错误标签的筹码的实例的摘要(本质上是分享经验的人们)。这对谁有帮助?
asheeshr 2014年

我可以问同样的问题,@ AsheeshR-当问题出在问题上时,为什么还要担心答案呢?无论如何,感谢您添加细节,TheDoctor。
Shog9 2014年

3

不是解决问题的首选方法,当然也不是要考虑的第一个解决方案,但是您可以考虑对签名字节进行编程。尝试执行此操作之前,请绝对确定您确实要执行此操作,并且已研究了撤消操作涉及的内容。这可能涉及更改计算机上的配置文件...

无论如何,设置控制器签名字节的方式如下(未经测试,我周围没有备用的AVR):

avrdude -p atmega328 -c arduino -P /dev/ttyUSB003 -b 19200 -v -U signature:w:0x1E,0x95,0x14:m

2
我知道这已经很晚了,但是我不认为让这种观点不受质疑是一个好主意:atmega328上的签名不可写,而据我所知,该签名不可在任何atmega328上写。 attiny。
microtherion'1

2
出于兴趣,我尝试了上述方法,但avrdude在某种意义上接受了该方法:avrdude: writing signature (3 bytes)-但是它没有做到:avrdude: verification error, first mismatch at byte 0x0002: 0x14 != 0x0f
Nick Gammon
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.