哎呀无效的设备签名

时间:2015-03-17 13:26:20

标签: microcontroller avr fuse avrdude

我正在使用arduino isp来编程ATtiny2313 avr微控制器。 这是问题, 当我使用默认的保险丝值编程avr芯片时,一切工作都很好。 但随后,我更改了保险丝字节,因为我想使用外部16 MHz晶振。 当我将lfuse值从0x64更改为0xff时(根据保险丝位的计算),微控制器停止响应。

现在每次我尝试使用arduino uno isp对微控制器进行编程时,都会收到错误消息: avrdude:Yikes!设备签名无效。 avrdude:ATtiny2313的预期签名是1E 91 0A

然后验证后显示的保险丝字节,很奇怪都被设置为0x00: avrdude:safemode:保险丝OK(H:00,E:00,L:00)

我不明白到底发生了什么,我花了好几个小时试图弄清楚这个问题。

在编程时是否应将16Mhz晶体连接到微控制器?

请帮助!

2 个答案:

答案 0 :(得分:1)

是。当您更改配置位以使用外部振荡器时,不再使用内部振荡器 - 包括在编程期间。芯片只是处于复位状态,直到它被提供外部时钟信号。当ISP试图读出一个值时,它只是看到数据线处于复位状态 - 这是所有0x00值的来源。

将晶体或信号发生器连接到CLOCKIN引脚,您应该能够再次与芯片通信。

答案 1 :(得分:0)

有同样的问题。如果没有外部振荡器,可以使用

Arduino ISP

在 PIN9 上,您会收到一个振荡器信号,您可以将其放在 PIN XTAL1 上的目标上。

帮我节省了两个 328p。