Cara Memprogram AVR (arduino) Dengan Arduino Lain: 7 Langkah
Cara Memprogram AVR (arduino) Dengan Arduino Lain: 7 Langkah
Anonim

Instruksional ini berguna sekiranya:

* anda mempunyai arduino anda dengan atmega168 dan anda membeli atmega328 di kedai elektronik tempatan anda. Ia tidak mempunyai bootloader arduino * anda ingin membuat projek yang tidak menggunakan arduino - hanya cip AVR biasa (seperti USBTinyISP) - anda mempunyai attiny2313 / attiny48 dll yang bersih yang anda mahu bakar firmware. Biasanya anda mesti mempunyai ISP (In System Programmer) seperti USBTinyISP untuk memprogram cip baru anda. Dengan adanya arduino, anda boleh mengajarnya untuk menjadi pengaturcara terima kasih atas kerja hebat yang dilakukan oleh Randall Bohn. Dia membuat Mega-ISP - lakaran arduino yang berfungsi seperti pengaturcara.

Langkah 1: Apa Yang Anda Perlu?

* Arduino yang berfungsi (atau klon - saya menggunakan BBB - BareBonesBoard dan RBBB - RealBareBonesBoard by ModernDevices) * cip yang ingin diprogramkan (diuji dengan atmega8, atmega168, atmega368, attiny2313, attiny13) * papan roti atau papan dengan pengepala ISP * 3 led + 3 perintang * wayar papan roti

Langkah 2: Membuat Programmer Mega-isp di Breadboard

Terdapat dua cara untuk menghubungkan Arduino anda untuk memprogram cip.

Anda boleh pasangkan cip avr anda ke papan roti dan sambungkan 5v dan GND ke pin masing-masing (periksa lembar data!) + Perintang penarik untuk menetapkan semula dan kawat pin dari anda arduino ke cip. Ini adalah garis pada Arduino dan fungsinya 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Reset) Atau anda boleh membuat header ISP 2x3pin yang boleh anda pasangkan ke papan yang menyediakan satu (papan arduino lain). Pinout untuk tajuk ISP terdapat pada gambar ketiga Terdapat 3 led untuk menunjukkan status pengaturcara. pin 9 - dipimpin biru - ini adalah pendengaran pengaturcara. pin 8 - led merah - menunjukkan pin kesalahan 7 - led hijau - menunjukkan bahawa pengaturcaraan sedang berlangsung (saya malas jadi saya tidak sesuai dengan warna dalam persediaan saya) Berikut adalah gambar yang dibuat di Fritzing Anda juga boleh membuat Perisai MEGA-isp. Yaroslav Osadchyy merancang perisai di helang. Anda boleh mendapatkan fail helang di laman webnya:

Langkah 3: Memuat naik Lakaran

Muat turun lakaran dari kod google mega-isp. (Avrisp.03.zip semasa menulis). Membongkarnya dan jalankan arduino ide dan buka avrisp.pde. Muat naik ke papan arduino anda. Denyutan jantung mesti berdegup kencang.

Langkah 4: Menggunakan Dengan Avrdude

Untuk menggunakan avrdude (dan semua GUI yang menggunakannya) anda harus memilih programmer 'avrisp'. kadar bit paling selamat adalah 19200.

Untuk menguji atmega168 baru anda dari baris arahan, cuba: $ avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 / dev / USB0 adalah port yang arduino disambungkan ke kotak linux saya (milik anda mungkin com5). Ini boleh diperiksa di arduino IDE di Tools -> Serial Port. Anda harus mendapatkan: [kabturek @ hal-9000 ~] # avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 avrdude: Peranti AVR dimulakan dan siap menerima arahan Membaca | ################################################# | 100% 0.13s avrdude: Tandatangan peranti = 0x1e9406 avrdude: safemode: Fius OK avrdude selesai. Terima kasih. Itu bermakna semuanya baik-baik saja. Sekiranya anda mendapat kesilapan - periksa langkah terakhir.

Langkah 5: Membakar Firmware USBtinyISP ke Attiny2313

USBTinyISP adalah pengaturcara hebat dari LadyAda yang sangat murah - $ 22. Saya mempunyai alat ganti2313 dan beberapa bahagian jadi saya memutuskan untuk membuatnya sendiri. Sekiranya anda tidak mempunyai pengalaman dalam membuat PCB, saya sarankan anda membeli kit kerana ia lebih berkualiti daripada yang anda boleh buat sendiri:). Sekurang-kurangnya beli PCB jika anda mahu membinanya. Anda boleh mendapatkannya dari Adafruit. Sambungkan ATtiny2313Dalam gambar terakhir anda dapat melihat attiny2313 dengan pin yang digunakan untuk ISP berwarna merah. Gambar adalah dari tutorial LadyAda avr. Membakar firmware: Membongkar firmware USBTinyISP. Pergi ke dir spi dan jalankan $ avrdude -p pt2313 -P / dev / ttyUSB0 -c avrisp -b 19200 untuk memeriksa sama ada semuanya baik-baik saja dengan cip. Sekarang tetapkan fius: $ avrdude -P / dev / ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m Sekarang anda harus memasang osilator luaran 12mhz ke cip. Dan bakar firmware: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P / dev / ttyUSB0 -c avrisp -b 19200 Voila. Attiny2313 anda mempunyai firmware USBTinyISP.

Langkah 6: Membakar Arduino Bootloader

Sambungan Saya menipu sedikit kerana saya menggunakan RBBB untuk mempermudah sambungan. Skema terdapat pada gambar # 2. Sekiranya anda menggunakan 2 arduino, gunakan gambar # 3 dan sambungkan pin ISP ke ICSP 2x3header pada arduino kedua (hamba). Hanya sambungkan kuasa usb ke papan pertama. Cara GUI Ini agak sukar kerana anda tidak boleh menggunakan Tools-> Burn Bootloader -> w / AVR ISP menyebabkan kelajuan lalai terlalu besar untuk mega-isp. Cari avrdude.conf yang disertakan dengan arduino IDE (dalam arduino / perkakasan / alat / avrdude.conf) dan ubah had had untuk pengaturcara avrisp dari 115200 hingga 19200 (sekitar baris 312) Cari dan ubah dalam programmer avrdude.conf id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 115200; # lalai adalah 115200 jenis = stk500;; kepada: pengaturcara id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 19200; # lalai adalah 115200 jenis = stk500;; Sekarang anda dapat menggunakan Tools -> Burn Bootloader -> w / AVR ISP (setelah anda memilih board yang tepat dari menu Tools) Commanline Anda juga dapat menggunakan commandline: Edit arduino / hardware / bootloaders / atmega / Makefile dan ubah ISPTOOL / PORT / SPEED untuk: # masukkan parameter untuk alat isp avrdude ISPTOOL = avrisp ISPPORT = / dev / ttyUSB0 ISPSPEED = -b 19200 no anda boleh menulis $ make diecimila_isp untuk membakar sekering dan bootloader. Uji Sekarang sambungkan anda arduino baru ke usb dan bakar sekelip mata!

Langkah 7: Penyelesaian masalah

Kesalahan Avrdude: avrdude: ser_open (): tidak dapat membuka peranti "/ dev / ttyUSB0": Tiada fail atau direktori seperti itu. Anda mempunyai port yang salah (-P) yang ditentukan atau arduino anda tidak disambungkan. periksa sambungan avrdude: Tandatangan peranti = 0x000000 avrdude: Yikes! Tandatangan peranti tidak sah. Periksa semula sambungan dan cuba lagi, atau gunakan -F untuk mengatasi pemeriksaan ini. Ini adalah jenis kesalahan umum. Cip anda tidak dikenali. Periksa sambungan di papan (GND / 5V disambungkan ke pin?) Anda akan mendapat ralat ini apabila cip anda dikonfigurasi untuk menggunakan pengayun luaran dan ia tidak berfungsi (tidak ada satu atau tidak berayun betul - topi 22pf hilang?)

Disyorkan: