哎呀无效的设备签名

yikes invalid device signature

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

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

然后验证后显示的fuse字节,很奇怪都设置为0x00: avrdude:安全模式:保险丝正常(H:00,E:00,L:00)

我不明白到底发生了什么,我花了几个小时试图找出问题所在。

编程时是否应该将 16Mhz crystal 连接到微控制器?

请帮忙!

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

将 crystal 或信号发生器连接到 CLOCKIN 引脚,您应该可以再次与芯片通信。

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

Arduino ISP

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

给我省了两个328p。