Isi kandungan:

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

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

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

Semua saudara AVR anda di luar sana, dan mereka yang baru memasuki aliran, Sebilangan daripada anda bermula dengan mikrokontroler PIC dan ada yang bermula dengan AVR ATMEL, ini ditulis untuk anda!

Oleh itu, anda membeli USBASP kerana murah dan berkesan untuk mem-flash ROM pada peranti Atmega anda, atau mungkin rangkaian ATTINY. Ini boleh diperoleh dengan harga di bawah $ 5, sebagai klon cina dari USB-ASP sumber terbuka! AVRdude adalah perisian untuk memprogramnya.

Anda pasti tahu bagaimana menghasilkan fail Hex menggunakan Atmel Studio (saya masih menggunakan AVR Studio v4.19 dan bukannya v7 terkini kerana lebih pantas dan lebih pantas pada komputer riba CPU teras tunggal ringan saya) / Netbook dan WINAVR memasang jika anda membaca ini Apa sahaja yang ditulis dalam DotNet berjalan dengan perlahan! dan versi yang lebih baru dirancang untuk menjadikan komputer riba anda berjalan seperti kura-kura! Anda boleh menggunakan Studio v4.19 versi Studio terhebat dari ATMEL untuk mikrokontroler AVR, beralih ke versi 7 apabila anda benar-benar memerlukannya untuk cip kemudian, dan menjadikan masa anda di komputer riba lebih produktif, berfungsi dan bukannya menunggu! Inilah yang saya cadangkan.

Baris arahan dude AVR khas untuk memprogram Atmega dengan fail Hex, berjalan seperti ini:

MENULIS KE FLASH: AVRdude -s -c avrisp -p t44 -P usb -U "flash: w: D: / ARDUINO / pwmeg1.hex: a"

di sini pwmeg1.hex adalah fail hex Intel yang akan "dibakar" atau "dimatikan" ke dalam "MCU sasaran" di mikrokontroler Lingo

Itu sedap untuk dikenang! Anda boleh menulis file batch dan menjalankannya di baris perintah di windows, menamakannya write_flash.bat. Begitu juga untuk membaca sekering, satu lagi baris yang perlu diingat! Ia membosankan.

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

Penyelesaiannya adalah dengan menggunakan salah satu alat front-end GUI yang mesra pengguna untuk AVRdude seperti Bitburner, programmer Khazama, yang hampir serupa dengan prestasi. Pembakar eXtreme. Saya telah menggunakan alat percuma untuk digunakan: eXtreme Burner, serba boleh, boleh dipercayai, dan tutorial ini adalah mengenai perkara itu. Ini bukan sahaja dapat memancarkan fail / program hex anda ke MPU, menggunakan perintah yang dikeluarkan untuk AVRdude di latar belakang, tetapi juga dapat membantu Anda mengatur FUSES yang merupakan subjek rumit yang sering membingungkan pemula dengan pengaturcaraan AVR. Berikut adalah pautan ke tutorial yang sangat baik mengenai subjek FUSES yang boleh anda lalui atau lakukan. Berhati-hati: ATMEL menggunakan keadaan '1' bit FUSE untuk menunjukkan keadaan 'lalai' (keadaan tidak ditetapkan atau tidak diprogramkan) dan '0' untuk menunjukkan keadaannya yang diprogramkan atau ditetapkan atau diaktifkan! Ini bertentangan dengan apa yang anda lakukan dengan bit FUSE dalam mikrokontroler PIC. Hati-hati semasa anda mengubah bit fius jam seperti membuat jam RC dalaman berubah menjadi kristal luaran kerana ini akan menimbulkan masalah ketika menyambung ke cip tanpa penyediaan kristal luaran. Begitu juga berhati-hati apabila anda menukar keadaan bit fius kritikal seperti SPIEN dan RESET DISABLE (ini harus selalu ditetapkan ke SPIEN = 0 dan RESET DISABLE = 1 jika anda ingin terus berkomunikasi dengan MCU dengan USB-ASP anda dalam mod ISP / SPI Sekiranya anda mengatasi ini, anda memerlukan pengaturcara Voltan Tinggi untuk 'melepaskan' AVR anda.

Sekiranya anda tertanya-tanya "apa itu sekering" dan "apa yang mereka lakukan"? Baca tulisan terbaik ini:

Topik lain yang berkaitan ialah bagaimana menetapkan kelajuan Jam MPU AVR anda yang mampu berkelajuan dari 1Mhz hingga 16 atau 20Mhz. Terdapat juga pilihan kristal frekuensi rendah kuasa rendah lspecial 31.25kHz yang jika dirancang dengan betul dapat menjadikan AVR anda habis bateri AA selama 3 bulan!

Kedua-duanya, bit Jam Fius (kedua-dua frekuensi dan Jenis jam dalaman RC / kristal luaran, dan bit Fuse lain) dapat disetel melalui tab FUSES di eXtreme Burner. Mula-mula kami akan menunjukkan kepada anda membaca ROM, dan kemudian bagaimana mem-flash fail hex menggunakan eXtreme Burner. Sudah tentu, anda juga boleh menggunakan laman web sekering AVR dalam talian, tetapi pilihan yang saya jelaskan boleh digunakan semasa anda berada di luar talian juga, di mana sahaja.

Langkah 1: Tetapan yang Akan Dibuat:

Tetapan yang Akan Dibuat
Tetapan yang Akan Dibuat
Tetapan yang Akan Dibuat
Tetapan yang Akan Dibuat
Tetapan yang Akan Dibuat
Tetapan yang Akan Dibuat
Tetapan yang Akan Dibuat
Tetapan yang Akan Dibuat

Gambar menunjukkan PENGATURAN yang harus dilakukan sebelum anda memulakan kerja. (satu masa sahaja). Di bawah item sub-menu 'Tetapan perkakasan', kami memilih 375Hz kerana kebanyakan MCU dari kilang ATMEL diset ke Tetapan lalai jam CPU 1 Mhz pada pengayun RC dalaman. Kelajuan ISP adalah Suku F_cpu. Itu memberi kita kelajuan terdekat 375 Khz, anda juga boleh mencapai kelajuan yang lebih rendah, ia tidak akan memberi banyak perbezaan. Anda boleh cuba menyambungkannya dengan meletakkannya pada lalai, dan mengeluarkan 'baca semua', jika gagal maka anda boleh datang ke sini dan mengubah kelajuan, menjadikannya lebih rendah.

Kerana jika anda tidak dapat menyambung (pesan akan diberikan di tetingkap pengaturcara "tidak dapat berkomunikasi dengan cip, tidak dapat SCK" bermaksud isyarat jam dari PC anda tidak dapat diselaraskan dengan cip anda yang anda cuba baca atau program)., anda tidak dapat mengubah kelajuan Jam CPU atau mengubah kelajuan dan jenisnya! Jadi menghubungkan adalah asas segalanya! Ini seperti "HUBUNGAN PERTAMA" seperti yang anda lihat dalam filem Spielberg. Sekiranya anda berjaya dalam hal ini, anda sentiasa dapat meningkatkan kelajuan jam MCU anda dengan memprogram sekering yang sesuai, dan kemudian menggunakan kelajuan yang lebih tinggi untuk menyambung.

Oleh itu, periksa gambar tetapan perkakasan yang disediakan di sini, kemudian tetapkan jenis peranti juga (cip yang anda cuba atur cara, nombor modelnya).

Langkah 2: Menetapkan Jenis Peranti Anda

Menetapkan Jenis Peranti Anda
Menetapkan Jenis Peranti Anda
Menetapkan Jenis Peranti Anda
Menetapkan Jenis Peranti Anda
Menetapkan Jenis Peranti Anda
Menetapkan Jenis Peranti Anda

lihat tangkapan skrin, Pic 1, kami telah menetapkan "ATTINY44A". Ini adalah mikrokontroler 14 pin sans UART. Saya telah menggunakan ini baru-baru ini, versi SSU. Sekiranya anda memasang versi stok Extreme burner, anda tidak akan melihat Attiny44A dalam senarai juntai bawah pilihan peranti, anda akan melihat Attiny44 yang untuk semua tujuan dapat kita gunakan untuk memprogramkan Attiny44A juga, untuk memperkenalkan sebarang peranti yang tidak tersenarai dalam senarai drop-down ini, baca "Hacking eXtreme Burner" saya yang lain.

Saya telah menggunakan Atmega88PA-AU juga dengan eXtreme Burner tetapi di Instructable ini kami menyebut "Attiny44A" di mana sahaja. Sekarang bagaimana anda membuat versi papan roti dari cip SMD 7mm persegi kecil dan mengujinya dengan program anda? (lihat gambar yang menunjukkan ukuran cip), Untuk ini, lihat petunjuk saya yang lain di mana saya menunjukkan cara membuat Breadboard Modul Plug-in yang sesuai menggunakan Attiny44A-SSU dan ATmega88PA-AU

Sebaik sahaja anda mempelajari teknik ini, anda akan dapat melihat cip yang ingin anda gunakan, sama ada pakej SMD atau DIL. Sebagai contoh, saya bahkan pernah menggunakan cip SMD yang hadir dalam pakej Quad 32 pin pin 0.8mm (Atmega88A) dengan cara yang serupa!

. Atau anda boleh menggunakan versi DIL 28pin dari Attiny44A untuk Instructable ini atau apa sahaja AVR yang anda gunakan ketika ini untuk mencuba eXtreme Burner untuk pengaturcaraan AVR.

Langkah 3: Keluarkan BACA SEMUA atau BACA FLASH

Keluarkan BACA SEMUA atau BACA FLASH
Keluarkan BACA SEMUA atau BACA FLASH
Keluarkan BACA SEMUA atau BACA FLASH
Keluarkan BACA SEMUA atau BACA FLASH

Sambungkan USBasp anda ke port USB komputer riba anda, saya menganggap anda telah memuatkan pemacu yang betul yang disertakan dengan pengaturcara anda dan yang dikesan dengan betul. Ini akan muncul di bawah 'Peranti dan Pencetak' di menu permulaan tetingkap jika ada, sebaik sahaja dipasang ke port USB! Sambungkan cip sasaran anda di papannya dengan USBasp (pin SDI // ISP yang relevan menggunakan kabel 6 pin atau 10 pin harus disambungkan di antara keduanya, iaitu pin: MOSI, RESET, MISO, SCK, Vcc, Ground).

Keluarkan BACA SEMUA dari MENU Xtreme Burner. Lihat gambar dan mesej yang kami perolehi. Pada mulanya skrin anda menunjukkan 'FF' untuk ROM di TAB Pertama pembakar, setelah membaca semua itu akan menunjukkan kandungan ROM sebenar pada cip. Sekiranya anda menggunakan cip segar kilang atau cip yang dipadam, anda akan melihat FF dalam kandungannya selepas "Baca Semua". Cip yang tidak diprogram akan menunjukkan 'FF' dalam ingatannya, begitu juga EEPROM (tab kedua dalam pengaturcara), tab terakhir menunjukkan FUSES.

Setelah MEMBACA SEMUA 3 tab akan menunjukkan maklumat yang betul yang terdapat dalam cip. Sebelum itu tidak, jadi keluarkan Baca semua terlebih dahulu sebaik sahaja anda menghubungkan semuanya.

Langkah 4: Tulis ke Flash (Fail Hex anda Dihantarkan ke ROM pada Chip)

Tulis ke Flash (Fail Hex anda Dihantarkan ke ROM pada Chip)
Tulis ke Flash (Fail Hex anda Dihantarkan ke ROM pada Chip)
Tulis ke Flash (Fail Hex anda Dihantarkan ke ROM pada Cip)
Tulis ke Flash (Fail Hex anda Dihantarkan ke ROM pada Cip)
Tulis ke Flash (Fail Hex anda Dihantarkan ke ROM pada Chip)
Tulis ke Flash (Fail Hex anda Dihantarkan ke ROM pada Chip)

Pilih fail menggunakan dialog Browse yang terbuka apabila anda mengklik ikon pertama di bar MENU di atas. Kami memilih satu fail seperti yang anda lihat dalam gambar. Setelah anda memilih fail hex (format intel hex) bar Menu yang menunjukkan "tidak ada file dimuat" diubah menjadi nama file yang anda muatkan.

Sekarang Keluarkan Flash Tulis dari Menu perisian. Mesej akan menunjukkan kepada anda apa yang berlaku. lihat gambar.

Setelah berjaya menulis, anda akan melihat 'FF' yang menandakan perubahan ROM yang baru atau terhapus kepada apa yang terdapat di dalam program atau fail hex anda. Saiz atau bilangan bait yang disimpan oleh fail anda di ROM juga diketahui oleh anda dengan melihat skrin ini, yang menunjukkan kandungan ROM sebenar cip sasaran anda yang anda flash sekarang.

Langkah pengesahan juga dilakukan dengan membaca chip, seperti pada PENGATURAN yang kami lakukan pada langkah pertama. Ini dilihat dalam mesej bahawa pengesahan juga berjaya.

Langkah 5: FUSES: Cara Menetapkannya di EXtreme Burner

FUSES: Cara Menetapkannya di EXtreme Burner
FUSES: Cara Menetapkannya di EXtreme Burner

Semasa anda mengeluarkan BACA SEMUA sekering dibaca dari cip. Itulah gambar PERTAMA yang ditunjukkan sekering.jpg.

Sekarang mungkin anda perlu mengubahnya menjadi perkara lain. Sekering terdiri daripada 4 kotak di TAB terakhir pada skrin eXtreme Burner anda. Yakni LOW FUSE BYTE, TINGGI FUSE BYTE, EXPEEDED FUSE BYTE, LOCK FUSE BYTE dan CALIBRATION BYTE. mengikut urutan itu ditunjukkan.

Anda hanya boleh menggunakan kalkulator fius ONLINE dan mengisinya seperti yang di

eleccelerator.com/fusecalc/fusecalc.php?

Atau anda boleh menggunakan eXtreme burner untuk melakukannya untuk anda. offline sendiri bila-bila masa: Pilih dari senarai drop-down yang muncul apabila anda mengklik butang DETAILS yang terdapat di bawah setiap jenis byte fuse. Cukup klik dua kali pada mana-mana baris di skrin BUTIRAN dan perhatikan ia berubah dari SET menjadi DILARANG dan beralih keadaan dengan tetikus anda klik pada setiap baris. Fuse Byte pada kotak di atasnya akan berubah dengan sewajarnya.

Sekiranya anda tertanya-tanya "apa itu sekering" dan "apa yang mereka lakukan"? Baca tulisan terbaik ini:

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

Langkah 6: Menetapkan Fius Menggunakan Kalkulator Fius EXtreme Burner

Menetapkan Fius Menggunakan Kalkulator Fius Burner EXtreme
Menetapkan Fius Menggunakan Kalkulator Fius Burner EXtreme
Menetapkan Fius Menggunakan Kalkulator Fius Burner EXtreme
Menetapkan Fius Menggunakan Kalkulator Fius Burner EXtreme
Menetapkan Fius Menggunakan Kalkulator Fius Burner EXtreme
Menetapkan Fius Menggunakan Kalkulator Fius Burner EXtreme

Anda dapat melihat Skrin Perincian yang muncul untuk setiap bait fius (RENDAH, TINGGI, DILUAR, LOCK, dan Kalibrasi). Bait Kalibrasi harus dibiarkan tidak berubah kerana menunjukkan bait data penentukuran dalam AVR yang berlaku pada pengayun RC dalaman. Byte LOCK biasanya hanya FF, (tidak dibincangkan dalam gambar di atas) kerana anda tidak akan mengunci Flash atau EEPROM semasa berada di tahap pembelajaran. Anda hanya akan menukar bait yang RENDAH, TINGGI, dan DIPERLUKAN. Berhati-hati !

Sekiranya anda menukar bit SPIEN menjadi 1 (keadaan tidak diprogramkan adalah 1 dalam mikrokontroler AVR), anda tidak dapat berkomunikasi dengan cip anda menggunakan USBASP atau pengaturcara mana pun! Keadaan lalai juga ditunjukkan di skrin anda untuk setiap bit fius. Ini memberitahu anda bahawa SPIEN lalai selalu 0 (keadaan diprogramkan) untuk membolehkan anda menggunakan mod SPI untuk pengaturcaraan ISP. Debug-wire atau DW bit selalu dibiarkan 1 (tidak diprogramkan) apabila SPIEN ditetapkan ke 0. Ini juga keadaan lalai. Juga, dalam bit Extended Fuse 'Self Programming Enable seharusnya' 1 '(tidak diprogramkan) jika anda menggunakan USB-ASP untuk memprogramkan cip sasaran anda (tidak menggunakan bootloader ROM seperti di ARDUINO).

Anda boleh menukar bit CLOCK (3 dalam jumlah) untuk memilih RC dalaman atau kristal luaran. Saya biasanya membiarkannya menggunakan RC dalaman yang membolehkan anda mendapatkan 2 pin tambahan yang membebaskan kristal luaran yang digunakan sebagai pin PORT untuk projek AVR anda. Biasanya kristal luaran diperlukan apabila anda memerlukan ketepatan masa yang tinggi dalam projek anda. Bagi pelajar, RC dalaman sudah mencukupi.

Biasanya setelah anda menggunakan beberapa gabungan fius, anda tidak akan mengubahnya. Ia akan menjadi satu masa. Anda hanya akan mem-flash ROM atau kadang-kadang EEPROM juga. Untuk Mem-flash EEPROM, fail.eep yang 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 'keadaan DATA TIDAK' EEPROM.

Langkah 7: Nilai Akhir Fuse Bits

Nilai Akhir Bit Fius
Nilai Akhir Bit Fius

Setelah menetapkan semua bit Fuse, dan menutup kotak DETAIL yang anda gunakan, anda dapat melihat nilai bit Fuse seperti yang dikira oleh program (lihat gambar). Yang tinggal hanyalah mengeluarkan "Tulis Sekering" menggunakan menu. Dan lihat mesej yang melaporkan penulisan yang berjaya. Kemudian, anda juga boleh mengeluarkan BACA SEMUA dari menu dan periksa sama ada sekering yang dibaca pada TAB terakhir dari skrin pembakar bertepatan dengan apa yang anda ingin tuliskan ke cip. (Pengesahan fius).

Anda akan menyedari bahawa pada permulaan Instructable ini ketika kita melakukan READ FUSES, skrin menunjukkan nilai FUSE yang sama seperti yang kita lihat di sini! Ini kerana ini adalah sekering yang sering saya gunakan dan jarang mengubahnya setelah saya menetapkannya di MCU saya, kecuali jika saya menukar frekuensi dari 1 Mhz ke 4Mhz untuk beberapa projek. AVR boleh ditetapkan maksimum 20Mhz (beberapa cip hanya hingga 16Mhz). Kekerapan yang anda tetapkan untuk F_cpu juga bergantung pada Voltan yang anda cekalkan! Sebagai contoh jika cip anda beroperasi dari 1.8V Vcc hingga 5.5V Vcc (lembaran data rujuk), anda tidak akan menjangkakan Chip anda pada 20 mhz jika anda membekalkannya hanya 1.8V! anda terlalu mengharapkannya! Jadual dalam lembaran data memberitahu anda pada voltan berapa frekuensi teratas pada angka mana. Semakin tinggi kekerapan operasi cip anda, semakin banyak kepanasan dan lebih banyak kuasa yang digunakannya. Fikirkan Kekerapan seperti Denyut Jantung haiwan. Burung Hummingbird dengan kadar denyutan pendengaran yang tinggi akan mempunyai tenaga yang lebih tinggi per minit berbanding dengan Paus atau gajah dengan degupan jantung yang jauh lebih rendah! Tetapi ia dapat melakukan lebih banyak lagi dalam masa yang lebih singkat. MCU begitu sahaja.

Langkah 8: Selesaikan

Sekarang anda telah menyelesaikan semua langkah dalam eXtreme burner, anda telah membaca ROM cip, anda telah membuka HEX File dan memasukkannya ke cip dan mengesahkan bahawa flashnya OK, anda juga belajar bagaimana mengatur sekering dan menyalakannya ke cip.

Sekiranya anda mempunyai sebarang pertanyaan, saya dengan senang hati akan menjawab atau mengubah suai tutorial agar lebih jelas.

Untuk beberapa cip, anda mungkin mendapati entri itu tidak ada dalam senarai juntai bawah pilihan cip dalam menu. Atau anda mungkin menghadapi kesilapan menulis dan mengesahkan kesilapan. Dalam kes seperti ini, sila baca "Hacking eXtreme Burner" yang diarahkan untuk menyelesaikan masalah ini.

Selamat menjalani program.

Disyorkan: