Daftar Isi:

MENGGUNAKAN EXtreme Burner untuk Pemrograman Mikrokontroler AVR: 8 Langkah
MENGGUNAKAN EXtreme Burner untuk Pemrograman Mikrokontroler AVR: 8 Langkah

Video: MENGGUNAKAN EXtreme Burner untuk Pemrograman Mikrokontroler AVR: 8 Langkah

Video: MENGGUNAKAN EXtreme Burner untuk Pemrograman Mikrokontroler AVR: 8 Langkah
Video: tutorial extreme burner avr tutorial 2024, Juli
Anonim
MENGGUNAKAN EXtreme Burner untuk Pemrograman Mikrokontroler AVR
MENGGUNAKAN EXtreme Burner untuk Pemrograman Mikrokontroler AVR

Semua Anda pengguna AVR persaudaraan di luar sana, dan mereka yang baru saja memasuki aliran, Beberapa dari Anda mulai dengan mikrokontroler PIC dan beberapa mulai dengan AVR ATMEL, ini ditulis untuk Anda !

Jadi Anda membeli USBASP karena murah dan efektif untuk mem-flash ROM di perangkat Atmega Anda, atau mungkin kisaran ATTINY. Ini dapat diperoleh dengan harga di bawah $5, sebagai klon Cina dari Open source USB-ASP ! AVRdude adalah perangkat lunak untuk memprogramnya.

Anda pasti tahu cara menghasilkan file Hex menggunakan Atmel Studio (saya masih menggunakan AVR Studio v4.19 daripada v7 terbaru karena lebih tajam dan lebih cepat pada laptop CPU single core ringan saya) / Netbook dan instal WINAVR jika Anda membaca ini. Apa pun yang ditulis di DotNet berjalan SLOW ! dan versi yang lebih baru dirancang untuk membuat laptop Anda berjalan seperti kura-kura! Anda dapat menggunakan Studio v4.19 versi terbesar dari Studio dari ATMEL untuk mikrokontroler AVR, beralih ke versi 7 ketika Anda benar-benar membutuhkannya untuk chip selanjutnya, dan membuat waktu Anda di laptop lebih produktif, bekerja daripada menunggu! Inilah yang saya rekomendasikan.

Baris perintah khas AVR dude untuk memprogram Atmega dengan file Hex, berjalan seperti ini:

TULIS UNTUK FLASH:AVRdude -s -c avrisp -p t44 -P usb -U "flash:w:D:\ARDUINO\pwmeg1.hex:a"

di sini pwmeg1.hex adalah file hex Intel untuk "dibakar" atau "di-flash" ke dalam "target MCU" di mikrokontroler Lingo

Itu seteguk untuk diingat! Anda bisa menulis file batch dan menjalankannya di baris perintah di windows, beri nama write_flash.bat. Demikian pula untuk membaca sekering, seteguk baris lain yang perlu diingat! Ini menjadi membosankan.

untuk membaca flash + eeprom:AVRdude -s -c avrisp -p t44 -P usb -U "flash:r:D:\ARDUINO\pwmeg1.hex:i" -U "eeprom:r::i"

Solusinya adalah dengan menggunakan salah satu alat front-end GUI yang ramah pengguna untuk AVRdude seperti Bitburner, programmer Khazama, yang hampir serupa dalam kemampuannya. Pembakar Ekstrem. Saya telah menggunakan alat gratis untuk digunakan: eXtreme Burner banyak, serbaguna, dapat diandalkan, dan tutorial ini adalah tentang itu. Itu tidak hanya dapat mem-flash file / program hex Anda ke MPU, menggunakan perintah yang dikeluarkan untuk AVRdude di latar belakang, itu juga dapat membantu Anda untuk mengatur FUSES yang merupakan subjek rumit yang sering membingungkan pemula untuk pemrograman AVR. Berikut ini tautan ke tutorial luar biasa tentang masalah FUSES yang dapat Anda pelajari atau pelajari. Sebuah kata peringatan: ATMEL menggunakan status '1' dari bit FUSE untuk menunjukkan status 'default' (status tidak disetel atau tidak diprogram) dan '0' untuk menunjukkan status terprogram atau disetel atau diaktifkan! Ini hanya kebalikan dari apa yang Anda lakukan dengan bit FUSE dalam mikrokontroler PIC. Berhati-hatilah saat Anda memodifikasi bit sekering jam seperti membuat jam RC internal berubah menjadi kristal eksternal karena ini akan menimbulkan masalah dalam menghubungkan ke chip tanpa pengaturan kristal eksternal. Demikian pula hati-hati ketika Anda mengubah status bit sekering kritis seperti SPIEN dan RESET DISABLE (ini harus selalu diatur ke SPIEN = 0 dan RESET DISABLE = 1 jika Anda ingin terus berkomunikasi dengan MCU dengan USB-ASP Anda dalam mode ISP / SPI Jika Anda mengacaukannya, Anda akan membutuhkan programmer Tegangan Tinggi untuk 'membuka' AVR Anda.

Jika Anda bertanya-tanya "apa sih sekering itu" dan "apa fungsinya"? Baca tulisan luar biasa ini:

Topik terkait lainnya adalah bagaimana mengatur kecepatan Jam MPU AVR Anda yang mampu kecepatan dari 1Mhz hingga 16 atau 20Mhz. Ada juga pilihan kristal frekuensi rendah berdaya arus rendah 31.25kHz yang jika dirancang dengan benar dapat membuat baterai AVR Anda kehabisan baterai AA selama 3 bulan!

Kedua bit ini, Clock Fuse (frekuensi dan Type clock internal RC/external crystal, dan bit Fuse lainnya) dapat diatur melalui tab FUSES di eXtreme Burner. Pertama kami akan menunjukkan Anda membaca ROM, dan kemudian cara mem-flash file hex menggunakan eXtreme Burner. Tentu saja, Anda juga dapat menggunakan situs web sekering AVR online, tetapi opsi yang saya jelaskan juga dapat digunakan saat Anda offline, di mana saja.

Langkah 1: Pengaturan yang Akan Dibuat:

Pengaturan yang Akan Dibuat
Pengaturan yang Akan Dibuat
Pengaturan yang Akan Dibuat
Pengaturan yang Akan Dibuat
Pengaturan yang Akan Dibuat
Pengaturan yang Akan Dibuat
Pengaturan yang Akan Dibuat
Pengaturan yang Akan Dibuat

Gambar-gambar menunjukkan PENGATURAN yang harus dilakukan sebelum Anda mulai bekerja. (hanya satu kali). Di bawah item sub-menu 'Pengaturan perangkat keras', kami memilih 375Hz karena sebagian besar MCU dari pabrik ATMEL diatur ke Pengaturan default jam CPU 1 Mhz pada osilator RC internal. Kecepatan ISP adalah Seperempat dari F_cpu. Itu memberi kami kecepatan terdekat 375 Khz, Anda bisa pergi ke kecepatan yang lebih rendah juga, itu tidak akan membuat banyak perbedaan. Anda dapat mencoba menghubungkan dengan membiarkan ini default, dan mengeluarkan 'baca semua', jika gagal maka Anda bisa datang ke sini dan mengubah kecepatan, membuatnya lebih rendah.

Karena jika Anda tidak dapat terhubung (pesan akan diberikan di jendela programmer "tidak dapat berkomunikasi dengan chip, tidak dapat SCK" berarti sinyal jam dari PC Anda tidak dapat disinkronkan dengan chip yang Anda coba baca atau program), Anda tidak akan dapat mengubah kecepatan Jam CPU atau mengubah kecepatan dan jenisnya ! Jadi menghubungkan adalah dasar dari segalanya! Ini seperti " KONTAK PERTAMA " seperti yang Anda lihat di film Spielberg. Jika Anda berhasil dalam hal ini, Anda selalu dapat meningkatkan kecepatan clock MCU Anda dengan memprogram sekering yang sesuai, dan kemudian menggunakan kecepatan yang lebih tinggi untuk menghubungkan.

Jadi, lihat snapshot pengaturan perangkat keras yang disediakan di sini, lalu atur juga jenis perangkat (chip yang Anda coba programkan, nomor modelnya).

Langkah 2: Mengatur Jenis Perangkat Anda

Mengatur Jenis Perangkat Anda
Mengatur Jenis Perangkat Anda
Mengatur Jenis Perangkat Anda
Mengatur Jenis Perangkat Anda
Mengatur Jenis Perangkat Anda
Mengatur Jenis Perangkat Anda

lihat screenshot, Pic 1, kami telah mengatur "ATTINY44A". Ini adalah Mikrokontroler 14 pin tanpa UART. Saya telah menggunakan ini baru-baru ini, versi SSU. Jika Anda menginstal versi stok Extreme burner, Anda tidak akan melihat Attiny44A dalam daftar drop-down pemilihan perangkat, Anda akan melihat Attiny44 yang untuk semua tujuan dapat kami gunakan untuk memprogram Attiny44A juga, untuk memperkenalkan perangkat apa pun yang tidak tercantum dalam daftar drop-down ini, baca instruksi saya yang lain "Hacking eXtreme Burner".

Saya telah menggunakan Atmega88PA-AU juga dengan eXtreme Burner tetapi dalam Instruksi ini kami menyebutkan "Attiny44A" di mana-mana. Sekarang bagaimana Anda membuat versi papan tempat memotong roti dari chip SMD persegi 7mm kecil dan mengujinya dengan program Anda? (lihat gambar yang menunjukkan ukuran chip), Untuk ini, lihat instruksi saya yang lain di mana saya mendemonstrasikan cara membuat Modul Plug-in yang sesuai dengan Breadboard menggunakan Attiny44A-SSU dan ATmega88PA-AU

Setelah Anda mempelajari teknik ini, Anda akan dapat memeriksa chip apa pun yang ingin Anda mainkan, apakah paket SMD atau DIL-nya. Sebagai contoh, saya bahkan telah menggunakan chip SMD yang datang dalam paket Quad pitch 0.8mm pin 32-pin (Atmega88A) dengan cara yang sama!

. Atau Anda bisa menggunakan Attiny44A versi 28pin DIL untuk Instructable ini atau AVR apa pun yang Anda gunakan saat ini untuk mencoba eXtreme Burner untuk pemrograman AVR..

Langkah 3: Terbitkan READ ALL atau READ FLASH

Keluarkan READ ALL atau READ FLASH
Keluarkan READ ALL atau READ FLASH
Keluarkan READ ALL atau READ FLASH
Keluarkan READ ALL atau READ FLASH

Hubungkan USBasp Anda ke port USB laptop Anda, saya berasumsi Anda telah memuat driver yang benar yang disertakan dengan programmer Anda dan terdeteksi dengan benar. Seharusnya muncul di bawah 'Perangkat dan Printer' di menu mulai windows jika ya, segera setelah dicolokkan ke port USB! Hubungkan chip target Anda pada board-nya dengan USBasp Anda (pin SDI// ISP yang relevan menggunakan kabel 6 pin atau 10 pin harus dihubungkan di antara keduanya, yaitu pin: MOSI, RESET, MISO, SCK, Vcc, Ground).

Keluarkan READ ALL dari MENU Xtreme Burner. Lihat foto dan pesan yang kami peroleh. Awalnya layar Anda menunjukkan 'FF' untuk ROM di TAB Pertama burner, setelah membaca semua itu akan menampilkan isi ROM yang sebenarnya pada chip. Jika Anda menggunakan chip baru dari pabrik atau chip yang dihapus, Anda akan melihat FF di konten setelah "Baca Semua". Chip yang tidak diprogram akan menampilkan 'FF' di memorinya, begitu juga EEPROM (tab kedua di programmer), tab terakhir menunjukkan FUSES.

Setelah READ ALL 3 tab akan menampilkan informasi yang benar yang terkandung dalam chip. Sebelum itu tidak, jadi keluarkan Baca semua dulu segera setelah Anda menghubungkan semuanya.

Langkah 4: Tulis ke Flash (File Hex Anda Berkedip Ke ROM di Chip)

Menulis ke Flash (File Hex Anda Berkedip Ke ROM di Chip)
Menulis ke Flash (File Hex Anda Berkedip Ke ROM di Chip)
Menulis ke Flash (File Hex Anda Berkedip Ke ROM di Chip)
Menulis ke Flash (File Hex Anda Berkedip Ke ROM di Chip)
Menulis ke Flash (File Hex Anda Berkedip Ke ROM di Chip)
Menulis ke Flash (File Hex Anda Berkedip Ke ROM di Chip)

Pilih file menggunakan dialog Browse yang terbuka saat Anda mengklik ikon pertama di bilah MENU di atas. Kami memilih satu file seperti yang Anda lihat di pic. Setelah Anda memilih file hex (format intel hex), bilah Menu yang menunjukkan "tidak ada file yang dimuat" berubah menjadi nama file yang Anda muat.

Sekarang Keluarkan Flash Tulis dari Menu perangkat lunak. Pesan akan menunjukkan kepada Anda apa yang terjadi. lihat foto-fotonya.

Setelah menulis sukses, Anda akan melihat 'FF' yang menandai perubahan ROM baru atau terhapus ke apa yang berisi program atau file hex Anda. Ukuran atau jumlah byte yang ditempati file Anda dalam ROM juga diketahui oleh Anda dengan melihat layar ini, yang menunjukkan kepada Anda isi ROM sebenarnya dari chip target Anda yang baru saja Anda flash.

Langkah verifikasi juga dilakukan dengan membaca chip, sesuai dengan SETTING yang kita lakukan pada langkah pertama. Hal ini terlihat pada pesan bahwa verifikasi juga berhasil.

Langkah 5: FUSES: Cara Mengaturnya di Extreme Burner

FUSE: Cara Mengaturnya di Extreme Burner
FUSE: Cara Mengaturnya di Extreme Burner

Saat Anda mengeluarkan READ ALL, sekering dibaca dari chip. Itulah gambar PERTAMA yang ditampilkan fuses.jpg.

Sekarang mungkin Anda perlu mengubahnya menjadi sesuatu yang lain. Sekering terdiri dari 4 kotak di TAB terakhir di layar Pembakar eXtreme Anda. Yaitu LOW FUSE BYTE, HIGH FUSE BYTE, EXTENDED FUSE BYTE, LOCK FUSE BYTE dan CALIBRATION BYTE. dalam urutan itu mereka ditampilkan.

Anda cukup menggunakan kalkulator sekering ONLINE dan mengisinya. seperti yang ada di

eleccelerator.com/fusecalc/fusecalc.php?

Atau Anda bisa menggunakan pembakar eXtreme untuk melakukannya untuk Anda. offline sendiri kapan saja: Pilih dari daftar drop-down yang muncul saat Anda mengklik tombol DETAILS yang ada di bawah setiap jenis byte sekering. Cukup klik dua kali pada baris mana pun di layar DETAIL dan lihat perubahannya dari SET ke CLEARED dan alihkan statusnya dengan klik mouse Anda pada setiap baris. Fuse Byte di kotak di atasnya akan berubah.

Jika Anda bertanya-tanya "apa sih sekering itu" dan "apa fungsinya"? Baca tulisan luar biasa ini:

www.instructables.com/id/Avr-fuse-basics-Running-an-avr-with-an-external-cl/

Langkah 6: Mengatur Sekering Menggunakan Kalkulator Sekering Pembakar Ekstrem

Mengatur Sekring Menggunakan Kalkulator Sekring Pembakar Ekstrem
Mengatur Sekring Menggunakan Kalkulator Sekring Pembakar Ekstrem
Mengatur Sekring Menggunakan Kalkulator Sekring Pembakar Ekstrem
Mengatur Sekring Menggunakan Kalkulator Sekring Pembakar Ekstrem
Mengatur Sekring Menggunakan Kalkulator Sekring Pembakar Ekstrem
Mengatur Sekring Menggunakan Kalkulator Sekring Pembakar Ekstrem

Anda dapat melihat Layar Detail yang muncul untuk setiap byte sekering (LOW, HIGH, EXTENDED, LOCK, dan Calibration). Byte Kalibrasi harus dibiarkan tidak berubah karena menunjukkan byte data kalibrasi di AVR yang berlaku untuk osilator RC internal. Byte LOCK biasanya hanya FF, (tidak dibahas dalam gambar di atas) karena Anda tidak akan mengunci Flash atau EEPROM saat dalam tahap pembelajaran. Anda hanya akan mengubah byte LOW, HIGH, dan EXTENDED. Hati-hati !

Jika Anda mengubah bit SPIEN menjadi 1 (status tidak terprogram adalah 1 dalam mikrokontroler AVR), Anda tidak akan dapat berkomunikasi dengan chip Anda menggunakan USBASP atau programer apa pun! Status default juga ditampilkan di layar Anda untuk setiap bit sekering. Ini mengingatkan Anda bahwa default SPIEN selalu 0 (status terprogram) untuk memungkinkan Anda menggunakan mode SPI untuk pemrograman ISP. Debug-wire atau bit DW selalu dibiarkan 1 (tidak terprogram) ketika SPIEN disetel ke 0. Ini juga merupakan status default. Juga, dalam bit Extended Fuse 'Self Programming Enable harus '1' (tidak diprogram) jika Anda menggunakan USB-ASP untuk memprogram chip target Anda (tidak menggunakan ROM bootloader seperti di ARDUINO).

Anda dapat mengubah bit CLOCK (3 angka) untuk memilih RC internal atau kristal eksternal. Saya biasanya membiarkannya untuk RC internal yang memungkinkan Anda mendapatkan 2 pin tambahan yang membebaskan kristal eksternal yang diperlukan untuk digunakan sebagai pin PORT untuk proyek AVR Anda. Biasanya kristal eksternal diperlukan ketika Anda membutuhkan ketepatan waktu yang tinggi dalam proyek Anda. Untuk peserta didik RC internal sudah cukup.

Biasanya setelah Anda menetapkan beberapa kombinasi sekering, Anda tidak akan mengubahnya. Ini akan menjadi satu kali. Anda hanya akan mem-flash ROM atau terkadang EEPROM juga. Untuk Flashing EEPROM file.eep terpisah dihasilkan oleh studio WINAVR / ATMEL Anda jika sama sekali program Anda menggunakan EEPROM untuk menyimpan data. Jika tidak, EEPROM dibiarkan tidak digunakan, diisi dengan data 'FF' yang menunjukkan 'NO DATA state' dari EEPROM.

Langkah 7: Nilai Akhir dari Fuse Bits

Nilai Akhir Bit Sekering
Nilai Akhir Bit Sekering

Setelah mengatur semua bit Fuse, dan menutup kotak DETAIL yang Anda gunakan, Anda dapat melihat nilai bit Fuse yang dihitung oleh program (lihat gambar). Yang tersisa hanyalah mengeluarkan "Tulis Sekering" menggunakan menu. Dan lihat pesan yang melaporkan penulisan yang berhasil. Kemudian, Anda juga dapat mengeluarkan READ ALL dari menu dan memeriksa apakah sekering yang dibaca di TAB terakhir layar burner sesuai dengan apa yang ingin Anda tulis ke chip. (Verifikasi sekering).

Anda akan melihat bahwa pada awal Instructable ini ketika kita melakukan READ FUSE, layar menunjukkan nilai FUSE yang sama dengan yang kita lihat di sini ! Itu karena ini adalah sekering yang sering saya gunakan dan jarang mengubahnya setelah saya mengaturnya di MCU saya, kecuali saya mengubah frekuensi dari 1 Mhz ke 4Mhz untuk beberapa proyek. AVR dapat diatur ke maksimum 20Mhz (beberapa chip hanya hingga 16Mhz). Frekuensi yang Anda atur untuk F_cpu juga tergantung pada Tegangan yang Anda berikan pada chip! Misalnya jika chip Anda beroperasi dari 1.8V Vcc hingga 5.5V Vcc (referensi lembar data), Anda tidak akan mengharapkan untuk menjalankan Chip Anda pada 20 mhz jika Anda hanya menyediakan 1.8V untuk itu! Anda berharap terlalu banyak darinya! Sebuah tabel di lembar data memberi tahu Anda pada tegangan berapa freq mencapai angka berapa. Semakin tinggi frekuensi operasi chip Anda, semakin banyak panas dan semakin banyak daya yang dikonsumsi. Pikirkan Frekuensi seperti Detak Jantung binatang. Seekor burung kolibri dengan tingkat detak jantung yang tinggi akan memiliki pembakaran energi per menit yang lebih tinggi dibandingkan dengan Paus atau gajah dengan detak jantung yang jauh lebih rendah! Tapi kemudian dapat melakukan lebih banyak dalam waktu yang lebih singkat. MCU memang seperti itu.

Langkah 8: Selesai

Sekarang Anda telah menyelesaikan semua langkah di eXtreme burner, Anda telah membaca ROM chip, membuka File HEX dan mem-flash-nya ke chip dan memverifikasi bahwa flash OK, Anda juga belajar cara mengatur sekering dan mem-flash-nya ke chip.

Jika Anda memiliki pertanyaan, saya akan dengan senang hati menjawab atau memodifikasi tutorial agar lebih jelas.

Untuk beberapa chip, Anda mungkin menemukan entrinya hilang dalam daftar dropdown pemilihan chip di menu. Atau Anda mungkin menghadapi kesalahan penulisan dan kesalahan verifikasi. Dalam kasus seperti itu, silakan baca "Hacking eXtreme Burner" saya yang lain yang dapat diinstruksikan untuk menyelesaikan masalah.

Selamat memprogram.

Direkomendasikan: