私はArduino UNOを使用して、Windows 7でArduino IDEディレクトリのavrdudeを使用して、コンパイル済みの16進イメージをATTINY45にプログラムしています。Unoには、examplesディレクトリから読み込まれた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ボードにアップロードします。標準バージョンは、ブートローダーが理解できない方法でボードのデバイス署名を照会し、このエラーが発生します。」これは、ブートローダーが搭載されていない新しいATTINYチップでArduino avrdudeを使用しても、同じエラーが発生することを意味しますか?言い換えれば、変更されたavrdudeは非ArduinoブートロードAVRチップをクエリできないのですか?
それとも、このエラーは、すべてのプログラマピンとATTINYの間に適切な接触がないことを単に意味しているのですか?
そして、ヒューズの設定は本当に必要ですか?Unoはフラッシュを1MHzで動作するattinyにプログラムできるので、いくつかの手順を節約できますか?
(私は「本物の」プログラマーを購入するだけですが、次の2日間でこのコードを入手する必要があり、ノバスコシア州の田舎にいます)
-carduino
、stk500 ではなく使用されます。IDEからブライトプログラムをattinyにアップロードしてみてください。こうすることで、設定で「詳細出力」を有効にすると、下部に正しいコマンドラインが表示されます。
-c avrisp
。1 MHzで問題なくプログラムできると思います。