我正在使用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晶体连接到微控制器?
请帮助!
答案 0 :(得分:1)
是。当您更改配置位以使用外部振荡器时,不再使用内部振荡器 - 包括在编程期间。芯片只是处于复位状态,直到它被提供外部时钟信号。当ISP试图读出一个值时,它只是看到数据线处于复位状态 - 这是所有0x00值的来源。
将晶体或信号发生器连接到CLOCKIN引脚,您应该能够再次与芯片通信。
答案 1 :(得分:0)