0

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

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

然后验证后显示的保险丝字节,非常奇怪的是全部设置为0x00:avrdude:safemode:Fuses OK(H:00,E:00,L:00)

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

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

请帮忙 !

4

2 回答 2

1

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

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

于 2015-03-17T13:34:18.913 回答
0

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

Arduino ISP

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

救了我两个 328p。

于 2021-04-14T06:30:43.817 回答