Apa yang saya perlukan untuk memasukkan kode saya ke mikrokontroler?

8

Saya belajar tentang coding pengontrol, tetapi tidak pernah benar-benar meletakkan kode pada perangkat fisik. Saya mencoba mencari tahu apa yang perlu saya pesan untuk mulai mengembangkan sistem embedded dasar.

Sebagai contoh, jika saya memiliki PIC18F1330, saya memiliki MPLAB IDE dan XC8 compiler. Bagus, jadi saya memiliki kode yang dikompilasi, dan saya siap untuk meletakkan ini di controller. Apa yang harus saya miliki untuk mentransfer kode kompilasi saya pada PC saya, ke controller?

Saya telah melihat hal-hal seperti debugger di-sirkuit, dan kit PIC. Saya baru saja tersesat pada saat ini.

Adam
sumber
Jadi begitu saya memiliki PICkit, PICkit memungkinkan saya untuk menghubungkan PC saya secara fisik ke mikrokontroler?
Adam
Ya, ada konektor pada PICKit, ICD dll. Yang Anda hubungkan ke board Anda untuk pemrograman dan debugging di sirkuit.
Spehro Pefhany

Jawaban:

4

Ada beberapa cara untuk mem-flash kode Anda ke mikrokontroler.

Di web, Anda akan menemukan cukup banyak programmer buatan sendiri, tetapi mereka biasanya juga memiliki perangkat lunak buatan sendiri dan tidak (terintegrasi) dalam IDE MPLAB.

Solusi termurah dari Microchip adalah PicKit untuk ~ 40 € yang baru saja terhubung ke PC melalui USB. Meskipun PicKit memiliki beberapa opsi debug, ada juga ICD 'In Circuit Debugger' yang lebih kuat untuk ~ 180 €, yang memiliki lebih banyak fitur debug, tetapi tentu saja juga dapat mem-flash chip.

Saya selalu merasa PicKit sudah cukup untuk saya.

Ada versi pihak ketiga di luar sana, karena microchip menerbitkan firmware dan skema untuk PicKit, tetapi jika Anda membelinya, pastikan Anda benar-benar mendapatkan apa yang Anda pikirkan tentang apa yang Anda dapatkan. Saya pernah melihat tawaran untuk PicKit 3, tetapi saya tidak yakin apakah itu bukan PicKit 2.


Sama seperti komentar: Ada MCU Microchip, yang dapat mem-flash sendiri. Sebagai contoh, kami menggunakan keluarga PIC18F2450 / 2550/4450/4550 dengan USB tertanam dan meletakkan boot loader di atasnya. Ketika pelompat ditutup, MCU memasuki mode boot loader pada saat startup, dan Anda dapat mem-flash MCU Anda dengan kode Anda. Semua itu tersedia di Microchip.

Untuk menggunakan ini, Anda perlu beberapa modifikasi pada kode Anda. Dan tentu saja, Anda memerlukan programmer reguler untuk mem-boot boot loader pada MCU. Jadi, fitur ini tidak masuk akal jika Anda memiliki seorang programmer. Tapi itu bagus jika Anda ingin pembaruan firmware untuk pelanggan Anda.

sweber
sumber
12

Karena Anda menggunakan MPLAB IDE dengan kompiler XC8 C, Anda dapat memeriksa kompatibilitas dari menu Configure-> Select Device (indikator hijau berarti didukung penuh, kuning parsial, dan merah tidak didukung).

Saat ini, pilihan terbaik adalah Pickit 3, ICD3, atau RealICE (dalam urutan kenaikan harga)

Berikut adalah programer yang kompatibel, debuggers:

Anda benar-benar ingin memiliki dukungan debug serta dukungan pemrograman.

masukkan deskripsi gambar di sini

Setelah driver perangkat diinstal Anda dapat memilih dan menghubungkannya (perangkat yang diberikan hanya dapat diinstal sebagai debugger atau programmer pada waktu tertentu):

masukkan deskripsi gambar di sini

Kemudian ketika program Anda dikompilasi (dalam bentuk debug atau rilis), Anda dapat memprogram mikrokontroler dengan tombol-tombol yang ditunjukkan di bawah ini:

masukkan deskripsi gambar di sini

Secara fisik, PICkit atau unit debug / programmer lain memiliki konektor yang Anda sambungkan ke sistem Anda. Ada 6 pin, dimana 5 digunakan termasuk daya dan tanah.

masukkan deskripsi gambar di sini

Spehro Pefhany
sumber
4

Pada saat penulisan, ada 3 cara utama untuk membakar biner ke mikrokontroler. Tergantung pada mikro tertentu, 3 dari mereka mungkin tersedia. Metode tertua adalah programmer / debugger khusus perangkat. Yang sekarang untuk bagian Microchip adalah Pickit3 / ICD3, mereka kompatibel dengan semua mik PIC saat ini dan beberapa yang lebih tua. Anda tidak dapat menggunakannya untuk memprogram bagian yang dibuat oleh produsen lain.

Metode kedua disebut bootloader. Ini adalah program kecil yang dibakar dalam mikro sebelum Anda mengambil bagian itu. Bootloader memungkinkan pemrograman melalui antarmuka standar mikro - UART, SPI, Ethernet, dll. Chip ARM sering disertai dengan bootloader yang sudah dimuat sebelumnya, serta AVR. Anda tidak perlu peralatan pemrograman berpemilik jika ada bootloader tetapi Anda tidak akan dapat melakukan debugging satu langkah dengan mudah.

Yang ketiga disebut JTAG. Ini adalah antarmuka semi-generik, Anda dapat memprogram banyak bagian yang berbeda dengannya dan juga debug. Anda akan membutuhkan perangkat yang disebut dongle JTAG. Beberapa bagian PIC memiliki JTAG. Chip ARM biasanya memiliki JTAG, dan banyak yang tidak memiliki antarmuka debug lainnya.

Oleg Mazurov
sumber
3

Resep umum:

  1. Ketikkan kode Anda dalam editor teks menggunakan bahasa pilihan Anda
  2. Terjemahkan bahasa itu ke dalam kode mesin menggunakan kompiler. Kode mesin adalah daftar angka heksadesimal: beberapa mewakili instruksi, sisanya adalah argumen / parameter untuk instruksi ini. Biasa disebut "file HEX". Setiap bagian dari program turun ke suksesi ini instruksi dasar + parameter mereka.
  3. Transfer kode mesin ini ke memori program perangkat Anda. Ini dilakukan dengan menggunakan seorang programmer. Programmer dikirimkan dengan driver, yang merupakan bagian dari perangkat lunak yang mengontrol programmer: berikan file HEX, itu akan melakukan sisanya. Programmer akan membaca file HEX Anda dan menggoyangkan garis pemrograman perangkat (seperti kode morse seperti) dengan cara kode untuk benar-benar menulis memori program. Ketika program dimuat, perangkat di-boot ulang dan kemudian, perangkat secara otomatis mulai mengeksekusi kode di awal memori program. Itu kodemu. Ini terlalu kasar, tapi cukup banyak yang perlu Anda ketahui untuk saat ini.

Anda hampir sampai . Anda memiliki lingkungan pengembangan terintegrasi yang melakukan 1 dan 2 dengan cara yang sangat ramah pengguna. Bahkan memiliki antarmuka untuk programmer sehingga Anda tidak perlu khawatir tentang apa file HEX (tekan "play" dan Anda selesai).

Namun Anda masih memerlukan programmer fisik untuk menghubungkan perangkat Anda dengan PC - ada nomor di luar sana untuk PIC. Pickit adalah salah satunya. Jika Anda ingin serius dengan pemrograman tertanam, Anda mungkin harus berinvestasi dalam In Circuit Debugger (ICD). Ini adalah seorang programmer, dan juga sesuatu yang memungkinkan Anda untuk mengintip atau menyodok variabel dan register di mikro, dan bahkan melangkah dan menghentikan program sesuka hati.

Tuan Mystère
sumber
3

Perangkat pemrograman mikrokontroler adalah yang Anda butuhkan. Itu adalah bagian dari perangkat keras yang terhubung ke PC Anda dan mikrokontroler, untuk melakukan fungsi yang diperlukan untuk memuat program ke chip. Dalam rangkaian debugger adalah perangkat yang memiliki lebih banyak fungsi daripada programmer, seperti men-debug kode Anda saat sedang berjalan pada chip. Anda dapat menggunakan ICD atau PIC Kit untuk memprogram UC. Atau, jika Anda suka, Anda dapat menggunakan sirkuit yang sangat sederhana seperti programmer JDM juga.

Perhatikan bahwa MPLAB IDE mendukung PIC Kit dan ICD. Tetapi jika Anda menggunakan programmer JDM, Anda harus menggunakan perangkat lunak lain seperti PICPgm untuk memuat chip yang dikompilasi.

chamod
sumber