Saya menggunakan Arduino UNO untuk memprogram gambar hex pra-kompilasi ke ATTINY45, menggunakan avrdude di direktori IDE Arduino, pada Windows 7. Uno memiliki sketsa ISP yang dimuat dari direktori contoh dan berfungsi - LED detak jantung pulsa baik.
Di sisi perangkat keras saya memiliki pengaturan ini , kecuali ATTINY adalah permukaan-mount, disolder ke papan selancar dengan semua pinnya diverifikasi-disolder dengan voltmeter. Saya menggunakan strip header-pin, dipegang dengan tangan untuk mendapatkan pin menyentuh papan selancar, untuk mendapatkan sinyal dari Uno ke ATTINY.
Berikut adalah baris perintah, yang saya ambil dari melihat hasil debugging 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
-Saya mencoba menjalankannya secara terpisah, tetapi selalu mendapatkan kesalahan ini:
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
tapi terkadang jumlahnya ff0000 atau ffff00 atau ffffff
Saya membaca bahwa "Arduino menggunakan versi avrdude yang sedikit dimodifikasi untuk mengunggah sketsa ke papan Arduino. Versi standar menanyakan tanda tangan perangkat papan dengan cara yang tidak dimengerti oleh bootloader, yang mengakibatkan kesalahan ini." Apakah ini berarti menggunakan Arduino avrdude dengan chip ATTINY baru, tanpa bootloader di sana, juga akan menyebabkan kesalahan yang sama? Dengan kata lain, apakah avrdude yang dimodifikasi tidak mampu untuk menanyakan chip AVR yang bukan boot-Arduino?
Atau apakah kesalahan itu hanya berarti saya tidak memiliki kontak yang baik antara semua pin programmer saya dan ATTINY?
Dan, apakah pengaturan sekering benar-benar diperlukan, dapatkah Uno memprogram flash menjadi attiny yang berjalan pada 1MHz dan dengan demikian menyelamatkan saya beberapa langkah?
(Saya hanya akan membeli seorang programmer "nyata", tetapi perlu mendapatkan kode ini dalam dua hari ke depan, dan saya di bagian pedesaan Nova Scotia)
sumber
-c avrisp
. Saya pikir Anda dapat memprogramnya pada 1 MHz tanpa masalah.-carduino
stk500. Coba unggah program blink ke attiny dari IDE. Dengan begitu Anda dapat melihat baris perintah yang benar di bagian bawah, jika Anda mengaktifkan "keluaran verbose" di pengaturan.Jawaban:
Saya menyolder kabel ke pad untuk memastikan koneksi baik, dan menggunakan kabel itu untuk pemrograman dari Uno. Kemudian programmer bekerja, tanpa mengedit baris perintah seperti yang diposting pada pertanyaan. Saya berlari beberapa variasi dan mampu menjawab semua pertanyaan saya, dan beberapa lagi selain:
Kesalahan "Yikes! Invalid device signature" disebabkan oleh kontak yang buruk antara programmer (Uno) dan pin ATTINY.
Itu tidak ada hubungannya dengan bootloader yang tidak ada di mikrokontroler baru. Chip ATTINY45 baru tidak perlu bootloader agar programer di-sirkuit berfungsi.
Uno dapat memprogram ATTINY45 yang dikonfigurasikan ke salah satu kecepatannya, 1MHz atau 8MHz. Pengaturan pabrik baik-baik saja, dan tidak perlu mengubah sekering.
Kedua versi avrdude bekerja untuk pemrograman - 6.1 dari situs penulis, dan yang dimodifikasi dari Arduino IDE.
AVRDUDE Program kaleng melalui Uno menggunakan salah
-c avrisp
,-c arduino
atau-c stk500v1
, tidak masalah yang.Satu pertanyaan kecil yang tidak bisa saya jawab, adalah kecepatan program Uno (kecepatan komunikasi antara pin I / O & mikrokontroler Arduino sedang di-flash). Apakah ini terkait dengan kecepatan port serial? Tapi ternyata tidak ada hubungannya dengan menjawab masalah ini. Orang lain dapat menanyakannya jika cukup ingin tahu.
sumber
Aku punya persis masalah ini. Jika ATtiny diatur untuk jam eksternal, maka ArduinoISP tidak akan dapat memprogramnya tanpa kristal eksternal. Menghubungkan kristal 16 MHz dan 2 kapasitor dan bekerja dengan sempurna.
(Saya kemudian dapat mengatur ATtiny ke jam internal, menghapus kristal, dan kemudian bekerja dengan sempurna tanpa kristal.)
sumber
Tambahkan papan dan deskripsi sekring mereka dari apa yang sudah ditetapkan dan itu akan berfungsi.
Untuk menambah adil
C:\Program Files\Arduino\hardware\arduino\avr\boards.txt
dan menambahkan deskripsi papan.Saya menggunakannya.
sumber