Answers:
我使用上面提到的mega-isp解决方案-Arduino avrisp草图在这里
http://code.google.com/p/mega-isp/downloads/list
我不使用它们的屏蔽-我使用两个6针双列直插式插座组成一条简单的电缆,以适合Arduino上的编程ISP连接器。(我没有两个dil插座,因此我使用标准的单列直插式插座并将两个3针插座粘合在一起。
然后,您需要一条带状电缆或一些电线。
将每个引脚分别连接到一个插座上,然后将另一个引脚连接到另一个上,但引脚5 =复位除外。将电缆的一端连接到引脚5-这是将连接到要编程的目标AVR的一端。将引脚5导线的另一端连接到浮动引脚连接器。
要通过将电缆放置在ISP编程连接器上并将浮线连接到数字10来将电缆连接到arduino,请将另一端连接到目标ISP连接器。您需要确保引脚1匹配。
使用avrdude进行编程
avrdude -P com7 -p t2313 -c avrisp -b 19200 -U flash:w:fred.hex
where
com7 - the com port that the Arduino based programmer is on
t2313 - the type of AVR you wish to program (m328 for ATMega328).
fred.hex - the name of the hex file you wish to progam into the target.
我已经用它来编程Tiny2313了,没有问题。
注意:电缆将携带5v电压为目标供电-如果目标已经供电,则请勿连接电缆的针脚2。
此解决方案也很好用: Kimio Kosaka avrdude-serjtag方法
如果您组装了自己的计算机,则可能已安装了备用盒式USB电缆/连接器,而这些电缆/连接器通常随新的主板一起提供。只需断开USB端,即可将主板连接器用作ISP连接器。
可以使用这样的批处理文件:(这是328芯片的文件,将设置熔丝以进行高速传输,然后上载引导加载程序,并在完成后设置锁定位。
avrdude -c diecimila -P ft0 -p m328p -B 4800 -U lock:w:0x3F:m -U efuse:w:0x05:m
-U hfuse:w:0xDA:m -U lfuse:w:0xFF:m
avrdude -c diecimila -P ft0 -p m328p -U flash:w:ATmegaBOOT_168_atmega328.hex -U
efuse:w:0x05:m -U hfuse:w:0xDA:m -U lfuse:w:0xFF:m -U lock:w:0x0F:m
是的,您可以将Arduino用作AVR程序员!
看一下mega-isp项目。
如果您需要高压编程(否则芯片会死机),可以尝试此解决方案 http://www.mightyohm.com/blog/2008/09/arduino-based-avr-high-voltage-programmer/
现在,由于标准的Arduino IDE包括基于Mega-ISP的ArduinoISP,但现在已由Arduino.cc正式支持,因此2009年的答案有些过时了。