Daftar Isi:

Flashing AVR/Arduino Dengan Raspberry Pi: 3 Langkah (dengan Gambar)
Flashing AVR/Arduino Dengan Raspberry Pi: 3 Langkah (dengan Gambar)

Video: Flashing AVR/Arduino Dengan Raspberry Pi: 3 Langkah (dengan Gambar)

Video: Flashing AVR/Arduino Dengan Raspberry Pi: 3 Langkah (dengan Gambar)
Video: Cara Install Raspberry Pi versi Terbaru - Flashing Raspberry Pi 2, Pi 3, Pi 4 Type A/ B/ B+/ pi 400 2024, Juli
Anonim
Flashing AVR/Arduino Dengan Raspberry Pi
Flashing AVR/Arduino Dengan Raspberry Pi

Programmer dalam sistem (ISP) adalah perangkat yang dapat Anda gunakan untuk memprogram banyak mikrokontroler, misalnya ATMega328p yang merupakan otak dari Arduino Uno. Anda dapat membeli sesuatu seperti USBtinyISP, atau Anda bahkan dapat menggunakan Arduino. Instruksi ini akan menunjukkan kepada Anda cara menggunakan Raspberry Pi sebagai ISP.

Program avrdude, yang digunakan Arduino IDE di bawah kap untuk mem-flash chip, dapat digunakan dengan banyak programmer. Salah satu opsinya adalah menggunakan pin SPI pada port ekspansi Pi. Saya akan menjelaskan cara membuat sambungan yang sesuai, menyusun rangkaian sederhana pada perfboard sehingga Anda tidak perlu mengulang pengkabelan setiap kali Anda ingin mem-flash sebuah chip, dan cara memasang dan menggunakan avrdude. Saya juga akan menunjukkan cara mendapatkan program yang dikompilasi menggunakan Arduino IDE ke dalam chip AVR seperti ATmega atau ATtiny menggunakan metode ini.

Hal yang Dibutuhkan:

  • Raspberry Pi dengan Raspbian terbaru diinstal
  • Soket header pria 40-pin (atau 26-pin jika Anda memiliki Pi yang lebih lama)
  • Kabel IDE untuk terhubung ke Pi
  • Resonator kristal 16 MHz
  • kapasitor 22 pF (2)
  • LED (1) untuk menunjukkan status programmer
  • Soket IC 8, 14, dan/atau 28 pin, tergantung pada bentuk chip yang ingin Anda flash
  • Beberapa perfboard, kabel, solder

Langkah 1: Membangun Perlengkapan Tukang Sepatu

Lampiran Tukang Bangunan
Lampiran Tukang Bangunan
Lampiran Tukang Bangunan
Lampiran Tukang Bangunan
Lampiran Tukang Bangunan
Lampiran Tukang Bangunan

Serial Peripheral Interface (SPI), juga disebut serial empat kawat, adalah cara berkomunikasi antara perangkat master tunggal dan satu atau lebih perangkat budak. Kami akan menggunakan ini untuk mem-flash chip, dengan Pi sebagai master dan chip sebagai slave. Anda akan membuat koneksi berikut antara Pi dan chip Anda (lihat pin di atas untuk berbagai AVR dan port ekspansi Pi untuk mengetahui pin mana):

  • Hubungkan pin MOSI (master-out-slave-in) bersama-sama
  • Hubungkan pin SCLK (jam bersama) bersama-sama
  • Hubungkan pin MISO (master-in-slave-out) bersama dengan resistor 220 Ohm, untuk melindungi Pi dari tegangan tinggi yang tidak terduga dari chip
  • Hubungkan GPIO 25 pada Pi langsung ke pin RESET pada chip. Pi menarik pin ini rendah saat pemrograman, jadi kami menggunakan resistor 10K agar tetap tinggi saat tidak memprogram, dan LED dengan resistor perlindungan 1K berjalan ke tegangan positif untuk memberi kami umpan balik visual yang bagus saat pemrograman.

Kami menghubungkan pin ground dan power (3.3V) antara Pi dan chip yang ingin kami program. Jika Anda belum tahu, pin Raspberry Pi tidak toleran 5V - mereka akan rusak jika lebih dari 3,3V muncul di dalamnya. Jika chip yang diprogram membutuhkan daya 5V untuk beberapa alasan, kita dapat menggunakan chip pemindah level untuk melindungi pin Pi, tetapi saya tidak mengalami masalah saat menggunakan 3.3V - jadi saya sarankan untuk memainkannya dengan aman dan menghemat komponen.

Terakhir, kami menghubungkan osilator kristal 16MHz melintasi pin XTAL pada chip, yang juga kami sambungkan ke ground melalui beberapa kapasitor 22pF. Chip AVR dapat diatur untuk berjalan pada frekuensi yang berbeda, dan juga dapat diatur untuk menggunakan sumber internal atau eksternal untuk menentukan frekuensi tersebut. Jika chip Anda diatur untuk menggunakan kristal eksternal sebagai sumber frekuensinya, Anda tidak akan dapat memprogram ulang tanpanya. Kalau tidak, tidak masalah jika itu ada.

Anda dapat menggunakan skema sirkuit pada gambar terakhir sebagai panduan untuk merakit attachment tukang sepatu Anda di perfboard. Anda dapat memiliki sebanyak atau sesedikit berbagai bentuk soket IC yang Anda inginkan, cukup sambungkan pin yang sesuai secara paralel dengan Pi dan kristal. N. B. jika Anda menggunakan gambar prototipe saya sebagai panduan, perhatikan bahwa saya menambahkan beberapa pin dan soket header tambahan sehingga saya dapat mengakses pin pada Pi untuk alasan yang tidak terkait.

Langkah 2: Menginstal dan Menggunakan Avrdude

Memasang dan Menggunakan Avrdude
Memasang dan Menggunakan Avrdude
Memasang dan Menggunakan Avrdude
Memasang dan Menggunakan Avrdude
Memasang dan Menggunakan Avrdude
Memasang dan Menggunakan Avrdude
Memasang dan Menggunakan Avrdude
Memasang dan Menggunakan Avrdude

Untuk menginstal avrdude di Pi Anda, cukup ketik

sudo apt-get install avrdude

Anda kemudian harus mengaktifkan antarmuka SPI, jika belum diaktifkan. Ada cara baris perintah untuk melakukan ini, tetapi jauh lebih mudah menggunakan alat konfigurasi Raspberry Pi. Jenis

sudo raspi-config

dan buka Opsi Antarmuka untuk mengaktifkan SPI.

Untuk mem-flash chip Anda, colokkan kabel pita dari Pi Anda ke konektor di sirkuit perfboard dan masukkan chip ke soket IC yang sesuai (pastikan menghadap ke arah yang benar).

Saat mem-flash program, Anda juga harus memastikan untuk mengatur sekering di chip dengan benar. Ini benar-benar hanya bit dalam chip yang Anda atur untuk memberi tahu kecepatan clock apa yang harus dijalankan, apakah akan menghapus EEPROM saat menulis chip, dll. Anda dapat membaca spesifikasi AVR lengkap untuk mengetahui cara mengatur setiap bit, tetapi jauh lebih mudah menggunakan kalkulator sekering yang disediakan di engbedded.com/fusecalc. Pilih nama bagian AVR yang Anda gunakan dan pilih opsi yang Anda inginkan di area "Pemilihan Fitur". Saya biasanya hanya memastikan pengaturan jam benar dan membiarkan hal-hal lain di default. Anda hampir selalu ingin membiarkan "Pemrograman serial diaktifkan" DIPERIKSA dan "Setel Ulang Dinonaktifkan" TIDAK DIPERHATIKAN - jika tidak, Anda tidak akan dapat memprogram ulang chip. Ketika Anda memiliki pengaturan yang tepat, Anda dapat menggulir ke bawah area "Pengaturan Saat Ini" dan menyalin argumen AVRDUDE seperti yang ditunjukkan pada gambar.

Untuk mengatur sekering, masukkan perintah

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p

di mana partname sesuai dengan chip yang Anda gunakan. Anda dapat menemukan daftar nama bagian dengan memasukkan sudo ardude -c linuxspi -p ?type. Untuk mem-flash program Anda, pastikan itu ada di direktori Anda saat ini dan masukkan

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U flash:w::i

Setelah kedua perintah, LED akan menyala saat chip sedang dimodifikasi.

Langkah 3: Mendapatkan Program Arduino Ke AVR

Mendapatkan Program Arduino Ke AVR
Mendapatkan Program Arduino Ke AVR
Mendapatkan Program Arduino Ke AVR
Mendapatkan Program Arduino Ke AVR
Mendapatkan Program Arduino Ke AVR
Mendapatkan Program Arduino Ke AVR

Fokus utama dari instruksi ini adalah mem-flash program yang sudah dikompilasi ke dalam chip, bukan bagaimana menulis atau mengompilasinya. Namun, saya ingin menjelaskan bagaimana Anda dapat mengkompilasi binari menggunakan Arduino IDE dan memasukkannya ke dalam chip AVR menggunakan metode ini, karena Arduino relatif mudah dipelajari dan ada begitu banyak tutorial dan contoh.

Pertama, Anda perlu menambahkan informasi tentang chip AVR yang akan Anda flash sehingga IDE tahu cara mengompilasinya. James Sleeman telah sangat membantu mengumpulkan beberapa file pengaturan, yang tersedia di github. Untuk menggunakannya, buka menu "Preferences" di Arduino IDE dan klik kotak di sebelah kolom "Additional Boards Manager URLs". Salin dan tempel URL berikut di kotak dialog yang muncul:

Kemudian, buka menu "Tools" dan temukan opsi "Boards Manager…" di submenu "Board". Gulir ke bawah ke bagian bawah daftar di kotak dialog Boards Manager dan instal papan DIY ATmega dan DIY ATtiny.

Untuk mengkompilasi program Anda, pertama-tama pastikan Anda telah memilih chip yang benar di menu "Prosesor", serta Kecepatan Prosesor yang benar. Pilih opsi "Gunakan Bootloader: Tidak", karena kami akan mengunggah langsung dengan Pi dan dengan demikian dapat menggunakan ruang ekstra yang biasanya digunakan oleh bootloader Arduino. Sekarang, klik tombol "Verifikasi" (tanda centang). Ini akan mengkompilasi program Anda tanpa mencoba mengunggahnya (karena Anda melakukan langkah itu sendiri).

Dengan asumsi semuanya berjalan dengan baik, Anda sekarang perlu mendapatkan program yang dikompilasi ke Pi Anda. IDE menyembunyikannya di lokasi sementara, karena dirancang untuk mengunggah program itu sendiri. Di Windows, itu ada di AppData/Local/Temp di direktori pengguna Anda, di folder yang dimulai dengan 'arduino_build'. Cari file.hex - itu program Anda! Kirimkan ke Pi Anda melalui FTP atau dengan stik USB, dan bisnis Anda sudah selesai.

Melakukan ini mengharuskan Anda memiliki PC Windows atau Mac untuk mengkompilasi program Anda, yang kemudian Anda kirim ke Pi. Akan sangat apik untuk dapat melakukan ini pada Pi itu sendiri, tetapi sayangnya versi resmi Arduino IDE yang tersedia di repositori Raspbian agak lama dan tidak memiliki Board Manager. Tanpa ini, menambahkan pengaturan yang sesuai untuk dikompilasi untuk AVR telanjang sedikit lebih sulit. Ada tutorial di luar sana untuk mengkompilasi versi Arduino yang lebih baru di Pi Anda - jika itu yang ingin Anda lakukan, carilah! Saya juga merasa mungkin untuk mendapatkan IDE untuk menggunakan programmer linuxspi untuk mem-flash chip dari dalam IDE itu sendiri (yaitu menggunakan tombol "unduh"), tetapi ini di luar kesabaran dan tingkat keahlian saya - jika Anda mengetahuinya caranya, posting di komentar! Terakhir, Anda bisa menulis program langsung di AVR-C dan mengompilasinya di Pi dengan avr-gcc, memberi Anda platform pengembangan AVR lengkap di Raspberry Pi. Saya telah melakukan sedikit dari itu, dan jika Anda ingin menempuh rute itu, saya salut. Dapatkan berkedip!

Direkomendasikan: