我正在使用Arduino UNO在Windows 7上使用Arduino IDE目录中的avrdude将预编译的十六进制图像编程为ATTINY45。Uno从示例目录中加载了ISP草图,并且该草图有效-心跳LED脉搏很好。
在硬件方面,我有这个设置,除了ATTINY是表面安装的,焊接到冲浪板上,其所有引脚都通过电压表验证焊接。我使用了一个顶针固定条,用手将其固定到冲浪板上,以将信号从Uno传送到ATTINY。
以下是命令行,它们是我从IDE的调试输出中获得的:
REM set the fuse for 8MHz, so the ISP programmer can work
C:\Progra~1\Arduino\hardware\tools\avr\bin\avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -e -Uefuse:w:0xff:m -Uhfuse:w:0xdf:m -Ulfuse:w:0xe2:m
REM load the program
C:\Progra~1\Arduino\hardware\tools\avr\bin\avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -Uflash:w:firefly.hex:i
REM set fuse for 1MHz, as the project requires
C:\Progra~1\Arduino\hardware/tools/avr/bin/avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -e -Uefuse:w:0xff:m -Uhfuse:w:0xdf:m -Ulfuse:w:0x62:m
-我尝试单独运行它们,但始终会收到此错误:
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
但有时数字是ff0000或ffff00或ffffff
我读到“ Arduino使用avrdude的略微修改版本将草图上载到Arduino板上。标准版本以引导加载程序无法理解的方式查询板的设备签名,从而导致此错误。” 这是否意味着将Arduino avrdude与新的ATTINY芯片一起使用,而没有引导加载程序,也会导致相同的错误吗?换句话说,修改后的avrdude是否无法查询非Arduino引导加载的AVR芯片?
还是那个错误只是意味着我所有的编程器引脚和ATTINY之间没有良好的接触?
而且,真的需要保险丝设置吗,Uno可以将闪存编程为以1MHz运行的attiny,从而为我节省了一些步骤吗?
(我只想买一个“真正的”程序员,但需要在接下来的两天内获取此代码,并且在新斯科舍省的农村地区)
-carduino
不使用stk500。只需尝试从IDE将眨眼程序上载到attiny。这样,如果在设置中启用“详细输出”,则可以在底部看到正确的命令行。
-c avrisp
。我认为您可以对其进行1 MHz的编程而不会出现问题。