Daftar Isi:

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

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

Video: Cara Memprogram AVR (arduino) Dengan Arduino Lain: 7 Langkah
Video: Persiapan Menggunakan Arduino Nano //Let's Talk Arduino Part-2// Dasar Arduino 2024, November
Anonim
Cara Memprogram AVR (arduino) Dengan Arduino Lain
Cara Memprogram AVR (arduino) Dengan Arduino Lain
Cara Memprogram AVR (arduino) Dengan Arduino Lain
Cara Memprogram AVR (arduino) Dengan Arduino Lain
Cara Memprogram AVR (arduino) Dengan Arduino Lain
Cara Memprogram AVR (arduino) Dengan Arduino Lain

Instruksi ini berguna jika:

* Anda memiliki arduino dengan atmega168 dan Anda membeli atmega328 di toko elektronik lokal Anda. Itu tidak memiliki bootloader arduino * Anda ingin membuat proyek yang tidak menggunakan arduino - hanya chip AVR biasa (seperti USBTinyISP) - Anda memiliki attiny2313/attiny48 bersih dll yang ingin Anda gunakan untuk membakar firmware. Biasanya Anda harus memiliki ISP (In System Programmer) seperti USBTinyISP untuk memprogram chip baru Anda. Memiliki arduino, Anda dapat mengajarinya menjadi seorang programmer berkat pekerjaan hebat yang dilakukan oleh Randall Bohn. Dia menciptakan Mega-ISP - sketsa arduino yang bekerja seperti seorang programmer.

Langkah 1: Apa yang Anda Butuhkan?

Apa yang kamu butuhkan ?
Apa yang kamu butuhkan ?

* Arduino yang berfungsi (atau tiruan - saya menggunakan BBB - BareBonesBoard dan RBBB - RealBareBonesBoard oleh ModernDevices) * sebuah chip yang ingin Anda program (diuji dengan atmega8, atmega168, atmega368, attiny2313, attiny13) * papan tempat memotong roti atau papan dengan header ISP * 3 led + 3 resistor * kabel papan tempat memotong roti

Langkah 2: Membuat Programmer Mega-isp di Breadboard

Membuat Programmer Mega-isp di Breadboard
Membuat Programmer Mega-isp di Breadboard
Membuat Programmer Mega-isp di Breadboard
Membuat Programmer Mega-isp di Breadboard
Membuat Programmer Mega-isp di Breadboard
Membuat Programmer Mega-isp di Breadboard

Ada dua cara untuk menghubungkan Arduino Anda ke program chip.

Anda dapat memasang chip avr Anda ke papan tempat memotong roti dan menghubungkan 5v dan GND ke masing-masing pin (periksa lembar data!) + resistor pullup untuk mereset dan menghubungkan pin dari arduino Anda ke chip. Ini adalah garis-garis pada arduino dan fungsinya 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Reset) Atau anda bisa membuat header ISP 2x3pin yang bisa anda colok ke board yang menyediakan satu (board arduino lainnya). Pinout untuk header ISP ada pada gambar ketiga Terdapat 3 led untuk menunjukkan status programmer. pin 9 - led biru - ini adalah detak jantung programmer. pin 8 - led merah - menunjukkan kesalahan pin 7 - led hijau - menunjukkan bahwa pemrograman sedang berlangsung (saya malas jadi saya tidak cocok dengan warna dalam pengaturan saya) Berikut adalah gambar yang dibuat di Fritzing Anda juga dapat membuat Perisai MEGA-isp. Yaroslav Osadchyy merancang perisai dengan elang. Anda bisa mendapatkan file elang di situsnya:

Langkah 3: Mengunggah Sketsa

Mengunggah Sketsa
Mengunggah Sketsa

Unduh sketsa dari kode google mega-isp. (avrisp.03.zip pada saat penulisan). Buka kemasannya dan jalankan arduino ide dan buka avrisp.pde. Unggah ke papan arduino Anda. Detak jantung led harus mulai berdetak.

Langkah 4: Menggunakan Dengan Avrdude

Menggunakan Dengan Avrdude
Menggunakan Dengan Avrdude

Untuk digunakan dengan avrdude (dan semua GUI yang menggunakannya), Anda harus memilih programmer 'avrisp'. bitrate paling aman adalah 19200.

Untuk menguji atmega168 baru Anda dari commandline coba: $ avrdude -p m168 -P /dev/ttyUSB0 -c avrisp -b 19200 /dev/USB0 adalah port yang menghubungkan arduino ke kotak linux saya (mungkin com5). Ini dapat 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: Perangkat AVR diinisialisasi dan siap menerima instruksi Membaca | ############################################################# | 100% 0,13 detik avrdude: Tanda tangan perangkat = 0x1e9406 avrdude: safemode: Sekering OK avrdude selesai. Terima kasih. Itu berarti semuanya baik-baik saja. Jika Anda mendapatkan kesalahan - periksa langkah terakhir.

Langkah 5: Membakar Firmware USBtinyISP ke Attiny2313

Membakar Firmware USBtinyISP ke Attiny2313
Membakar Firmware USBtinyISP ke Attiny2313
Membakar Firmware USBtinyISP ke Attiny2313
Membakar Firmware USBtinyISP ke Attiny2313
Membakar Firmware USBtinyISP ke Attiny2313
Membakar Firmware USBtinyISP ke Attiny2313

USBTinyISP adalah programmer hebat dari LadyAda yang sangat murah - 22$. Saya memiliki attiny2313 cadangan dan beberapa bagian jadi saya memutuskan untuk membuatnya sendiri. Jika Anda tidak memiliki pengalaman dalam membuat PCB, saya sarankan Anda membeli kit karena kualitasnya lebih tinggi daripada yang Anda buat sendiri:). Setidaknya belilah PCB jika Anda ingin membuatnya. Anda bisa mendapatkannya dari Adafruit. Hubungkan ATtiny2313Pada gambar terakhir Anda dapat melihat attiny2313 dengan pin yang digunakan untuk ISP berwarna merah. Gambar dari tutorial avr LadyAda. Membakar firmware: Buka paket firmware USBTinyISP. Buka direktori spi dan jalankan $ avrdude -p pt2313 -P /dev/ttyUSB0 -c avrisp -b 19200 untuk memeriksa apakah semuanya baik-baik saja dengan chip. Sekarang atur sekeringnya: $ avrdude -P /dev/ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse:w:0xdf:m -U lfuse:w:0xef:m Sekarang Anda harus memasang osilator eksternal 12mhz ke chip. Dan bakar firmware: $ avrdude -B 1 -pt2313 -U flash:w:main.hex -P /dev/ttyUSB0 -c avrisp -b 19200 Voila. Attiny2313 Anda memiliki firmware USBTinyISP.

Langkah 6: Membakar Bootloader Arduino

Membakar Bootloader Arduino
Membakar Bootloader Arduino
Membakar Bootloader Arduino
Membakar Bootloader Arduino
Membakar Bootloader Arduino
Membakar Bootloader Arduino

ConnectingSaya curang sedikit karena saya menggunakan RBBB untuk menyederhanakan koneksi. Skema ada di gambar #2. Jika Anda menggunakan 2 arduino gunakan gambar #3 dan sambungkan pin ISP ke header ICSP 2x3 pada arduino kedua (slave). Hanya sambungkan daya usb ke papan pertama. Cara GUI Ini sedikit rumit karena Anda tidak bisa hanya menggunakan Tools-> Burn Bootloader -> w/ AVR ISP karena kecepatan default terlalu besar untuk mega-isp. Cari avrdude.conf yang disertakan dengan arduino IDE (di arduino/hardware/tools/avrdude.conf) dan ubah batas untuk programmer avrisp dari 115200 menjadi 19200 (sekitar baris 312) Cari dan ubah di avrdude.conf programmer id = "avrisp"; desc = "ISP Atmel AVR"; baudrate = 115200; # default adalah 115200 jenis = stk500;; ke: id pemrogram = "avrisp"; desc = "ISP Atmel AVR"; baudrate = 19200; # default adalah 115200 jenis = stk500;; Sekarang Anda dapat menggunakan Tools -> Burn Bootloader -> w/ AVR ISP (setelah Anda memilih papan yang tepat dari menu Tools)Commanline Anda juga dapat menggunakan commandline: Edit arduino/hardware/bootloaders/atmega/Makefile dan ubah ISPTOOL/PORT /SPEED ke: # masukkan parameter untuk avrdude isp tool ISPTOOL = avrisp ISPPORT = /dev/ttyUSB0 ISPSPEED = -b 19200 no Anda dapat menulis $ make diecimila_isp untuk membakar sekering dan bootloader. Test Sekarang hubungkan arduino baru Anda ke usb dan membakar berkedip!

Langkah 7: Pemecahan Masalah

Penyelesaian masalah
Penyelesaian masalah

Kesalahan avrdude: avrdude: ser_open(): tidak dapat membuka perangkat "/dev/ttyUSB0": Tidak ada file atau direktori seperti itu Anda salah menentukan port (-P) atau arduino Anda tidak terhubung. periksa koneksi avrdude: Tanda tangan perangkat = 0x000000 avrdude: Astaga! Tanda tangan perangkat tidak valid. Periksa kembali koneksi dan coba lagi, atau gunakan -F untuk mengesampingkan pemeriksaan ini. Ini adalah jenis kesalahan umum. Chip Anda tidak dikenali. Periksa koneksi di papan (GND/5V terhubung ke pin?) Anda akan mendapatkan kesalahan ini ketika chip Anda dikonfigurasi untuk menggunakan osilator eksternal dan tidak berfungsi (tidak ada satu atau tidak berosilasi dengan benar - tutup 22pf hilang ?)

Direkomendasikan: