- Bahan yang Dibutuhkan:
- Memori flash:
- ICSP (Pemrograman Serial Dalam Sirkuit):
- Sirkuit dan Perangkat Keras:
- Membakar Kode menggunakan MPLAB IPE:
Dalam dua tutorial kami sebelumnya, kami membahas Bagaimana Memulai PIC menggunakan kompiler MPLABX dan XC8, kami juga telah membuat Program Berkedip LED Pertama kami dengan PIC dan memverifikasinya dengan simulasi. Sekarang saatnya kita beralih ke perangkat keras. Dalam tutorial ini kita akan membangun sirkuit kecil di Papan Perf untuk Mengedipkan LED menggunakan PIC. Kami akan membuang program ke mikrokontroler PIC kami dan memverifikasi LED Berkedip. Untuk Program PIC MCU kita akan menggunakan MPLAB IPE.
Bahan yang Dibutuhkan:
Seperti yang dibahas dalam tutorial kami sebelumnya, kami membutuhkan bahan-bahan berikut:
- PicKit 3
- IC PIC16F877A
- 40 - Pin IC pemegang
- Papan kinerja
- 20 MHz Crystal OSC
- Pin Bergstick Wanita dan Pria
- 33pf Capacitor - 2Nos, 100uf dan 10uf cap.
- Resistor 680 ohm, 10K dan 560ohm
- LED warna apa saja
- 1Kit solder
- IC 7805
- Adaptor 12V
Apa yang terjadi jika kita "Membakar" Mikrokontroler !!
Mengunggah kode ke MCU dan berfungsi di dalam MCU adalah praktik yang biasa dilakukan.
Untuk memahami hal ini mari kita lihat program kami
Seperti yang kita lihat, kode ini ditulis dalam Bahasa C dan tidak masuk akal bagi MCU kita. Di sinilah bagian dari kompilator kami masuk; a Compiler adalah salah satu yang mengubah kode ini menjadi bentuk yang dapat dibaca Mesin. Formulir yang dapat dibaca mesin ini disebut kode HEX, setiap proyek yang kita buat akan memiliki kode HEX yang akan ada di direktori berikut
** Lokasi Anda ** \ Blink \ Blink.X \ dist \ default \ production \ Blink.X.production.hex
Jika Anda sangat tertarik untuk mengetahui seperti apa kode HEX ini, buka saja menggunakan notepad. Untuk program Blink kami, kode HEX akan terlihat seperti berikut:
: 060000000A128A11FC2F18: 100FAA008316031386018312031386018312031324: 100FBA0086150D30F200AF30F100C130F000F00BB1: 100FCA00E42FF10BE42FF20BE42F0000831203133A: 100FDA0086110D30F200AF30F100C130F000F00B95: 100FEA00F42FF10BF42FF20BF42F0000DB2F830107: 060FFA000A128A11D52F36: 02400E007A3FF7: 00000001FF
Ada beberapa cara untuk membaca ini dan bagaimana memahami dan membalikkannya kembali ke bahasa Assembly, tetapi itu sepenuhnya di luar cakupan tutorial ini. Jadi, sederhananya; HEX adalah hasil perangkat lunak akhir dari pengkodean kami dan inilah yang akan dikirim oleh MPLAB IPE untuk membakar MCU.
Memori flash:
The kode HEX disimpan ke dalam MCU di sebuah tempat bernama Flash memori. Memori flash adalah tempat di mana program kita akan disimpan di dalam MCU dan dijalankan dari sana. Setelah kami mengkompilasi program di MPLABX kami, kami akan mendapatkan informasi berikut tentang jenis memori di konsol Output
Karena kami baru saja menyusun program berkedip LED kecil, ringkasan memori menunjukkan bahwa kami baru saja menghabiskan 0,5% dari ruang program yang tersedia dan 1,4% dari ruang Data.
Memori mikrokontroler PIC16F877 pada dasarnya dibagi menjadi 3 jenis:
Memori Program: Memori ini berisi program (yang telah kami tulis), setelah kami membakarnya. Sebagai pengingat, Penghitung Program menjalankan perintah yang disimpan dalam memori program, satu demi satu. Karena kami telah menulis program yang sangat kecil, kami hanya menghabiskan 0,5% dari total ruang. Ini adalah memori non-Volatile, artinya data yang disimpan tidak akan hilang setelah dimatikan.
Memori Data: Ini adalah jenis memori RAM, yang berisi register khusus seperti SFR (Special Function Register) yang mencakup timer Watchdog, Brown out Reset, dll. Dan GPR (General Purpose Register) yang mencakup TRIS dan PORT dll. Variabel yang disimpan di Data Memory selama program dihapus setelah kita mematikan MCU. Variabel apa pun yang dideklarasikan dalam program akan berada di dalam memori Data. Ini juga merupakan memori yang mudah menguap.
Data EEPROM (Electrically Erasable Programmable Read-Only Memory): Memori yang memungkinkan penyimpanan variabel sebagai hasil dari pembakaran program tertulis. Misalnya jika kita menetapkan variabel "a" untuk menyimpan nilai 5 di dalamnya dan menyimpannya di EEPROM data ini tidak akan hilang meskipun Power dimatikan. Ini adalah memori non-volatile.
Memori Program dan EEPROM adalah memori non-volatile, dan disebut sebagai Flash Memory atau EEPROM.
ICSP (Pemrograman Serial Dalam Sirkuit):
Kami akan memprogram PIC16F877A kami menggunakan opsi ICSP yang tersedia di MCU kami.
Sekarang, Apakah ICSP itu?
ICSP adalah cara sederhana yang membantu kami memprogram MCU bahkan setelah ditempatkan di dalam papan Proyek kami. Tidak perlu memiliki papan pemrogram terpisah untuk memprogram MCU, yang kita butuhkan hanyalah 6 koneksi dari pemrogram PicKit3 ke papan kami sebagai berikut:
1 |
VPP (atau MCLRn) |
Untuk masuk ke mode pemrograman. |
2 |
Vcc |
Power Pin 11 atau 32 |
3 |
GND |
Tanah PIN 12 atau 31 |
4 |
PGD - Data |
RB7. PIN40 |
5 |
PGC - Jam |
RB6. PIN 39 |
6 |
PGM - mengaktifkan LVP |
RB3 / RB4. Tidak wajib |
ICSP cocok untuk semua paket PIC; yang kita butuhkan hanyalah menarik lima pin ini (pin ke-6 PGM adalah opsional) dari MCU ke Pickit3 seperti yang ditunjukkan pada gambar di bawah ini.
Sirkuit dan Perangkat Keras:
Sekarang, kami memiliki kode HEX kami siap dan kami juga tahu bagaimana menghubungkan PicKit 3 kami ke PIC MCU kami menggunakan ICSP. Jadi, mari kita lanjutkan dan solder sirkuit dengan bantuan skema di bawah ini:
Pada rangkaian di atas saya telah menggunakan 7805 untuk mengatur output 5V ke PIC MCU saya. Regulator ini akan didukung oleh adaptor wall mart 12V. Led MERAH digunakan untuk menunjukkan apakah PIC dinyalakan. Konektor J1 digunakan untuk pemrograman ICSP. Pin dihubungkan seperti yang dibahas pada tabel di atas.
Pin pertama MCLR harus dipegang tinggi dengan bantuan 10k secara default. Ini akan mencegah MCU menyetel ulang. Untuk mengatur ulang MCU pin MCLR harus ditahan ke ground yang dapat dilakukan dengan bantuan sakelar SW1.
LED dihubungkan ke pin RB3 melalui resistor bernilai 560 ohm (Lihat kalkulator resistor LED). Jika semuanya baik-baik saja setelah program kita diunggah, LED ini akan berkedip berdasarkan program. Seluruh sirkuit dibangun di atas Perfboard dengan menyolder semua komponen di atasnya seperti yang Anda lihat pada gambar di atas.
Membakar Kode menggunakan MPLAB IPE:
Untuk membakar kode, ikuti langkah-langkah di bawah ini:
- Luncurkan MPLAB IPE.
- Hubungkan salah satu ujung PicKit 3 Anda ke PC dan ujung lainnya ke pin ICSP pada papan kinerja.
- Hubungkan ke perangkat PIC Anda dengan mengklik tombol hubungkan.
- Jelajahi file Blink HEX dan klik Program.
Jika, semuanya berjalan sesuai rencana, Anda harus mendapatkan pesan sukses di layar. Periksa Kode dan Video di bawah ini untuk demonstrasi Lengkap dan gunakan bagian komentar jika Anda ragu.
Terima kasih!!!
Mari bertemu di tutorial Berikutnya di mana kita akan bermain dengan lebih banyak LED dan sakelar.