Reset Pada Mikrokontroler PIC16F84

Reset digunakan untuk menempatkan mikrokontroler ke kondisi 'dikenal/known'. Itu berarti pada penggunaanya mikrokontroler dapat berjalan diluar keinginan. Maka supaya mikrokontroler dapat terus berfungsi perlu dilakukan pengaturan ulang, yang berarti semua register akan ditempatkan pada posisi awal. Reset tidak hanya digunakan ketika mikrokontroler tidak berjalan seperti yang kita inginkan, tetapi juga dapat digunakan ketika mencoba perangkat sebagai interupsi dalam pelaksanaan program, atau supaya mikrokontroler siap ketika loading program.
 
Untuk mencegah logika nol terbawa ke pin MCLR secara tidak sengaja ( reset tersebut diaktifkan dengan nol logis), MCLR harus dihubungkan melalui resistor ke kutub suplai positif. Resistor memiliki nilai antara 5 dan 10K. Resistor tersebut fungsinya adalah untuk menjaga pin MCLR pada satu logis sebagai pencegahan, teknik ini dinamakan Pull up.


Mikrokontroler PIC16F84 memiliki beberapa sumber me-reset:
a) Reset saat power on, POR (Power-On Reset)
b) Reset ketika mikrokontroler bekerja  dengan memberika logika nol pada pin MCLR .
c) Reset selama kondisi sleep
d) Reset pada penjaga waktu (watchdog timer) (WDT) overflow
e) Reset saat overflow WDT selama kondisi sleep.

Sumber reset paling penting adalah a) dan b). Yang pertama terjadi setiap kali power supply diberikan ke mikrokontroler dan berfungsi untuk membuat semua register dan eksekusi program ke posisi awal. Yang kedua adalah dengan cara memberikan logika nol pada pin MCLR selama pengoperasian normal mikrokontroler. Sumber reset yang kedua sering digunakan dalam pengembangan program.

Selama reset, lokasi memori RAM  tidak diatur ulang. RAM  tidak berubah di reset apapun. Yang berubah keposisi awal adalah Register SFR. Salah satu efek yang paling penting dari reset adalah menetapkan program counter (PC) ke nol (0000H), yang memungkinkan program untuk memulai eksekusi dari instruksi tertulis pertama.

Reset Ketika Suplai Tegangan Drop/di bawah diijinkan (Brown-out Reset)

Impulse untuk reset selama teganan-naik yang dihasilkan oleh mikrokontroler itu sendiri ketika mendeteksi peningkatan pasokan Vdd (berkisar dari 1.2V ke 1.8V). Dorongan itu berlangsung 72ms yang memberikan cukup waktu bagi osilator untuk mendapatkan kondisi stabil. 72ms ini disediakan oleh timer PWRT internal . Mikrokontroler  dalam mode reset selama PWRT aktif. Namun, sebagai perangkat kerja, masalah muncul ketika pasokan tidak drop ke nol tapi turun di bawah batas yang menjamin berfungsinya mikrokontroler. Kasus ini mungkin terjadi ketika penggunaan, terutama di lingkungan industri dimana gangguan dan ketidakstabilan pasokan listrik merupakan kejadian sehari-hari. Untuk mengatasi masalah ini kita perlu memastikan bahwa mikrokontroler dalam kondisi reset setiap kali suplai tegangan jatuh di bawah limit yang telah ditentukan.
Jika, menurut spesifikasi listrik, rangkaian reset internal mikrokontroler tidak dapat memenuhi kebutuhan, komponen elektronik khusus dapat digunakan yang mampu menghasilkan sinyal reset diinginkan. Selain fungsi ini, rangkaian ini juga dapat berfungsi untuk menjaga tegangan suplai. Jika penurunan tegangan di bawah tingkat yang ditentukan, logika nol akan muncul pada pin MCLR  yang membuat mikrokontroler dalam keadaan reset sampai tegangan tidak dalam batas yang menjamin kinerja yang akurat.

Pembangkit Pulsa / Oscillator Pada PIC16F84

Sirkuit osilator digunakan untuk membangkitkan pulsa (clock) untuk mikrokontroler . Clock dibutuhkan agar mikrokontroler dapat mengeksekusi instruksi program atau program.

Jenis osilator

PIC16F84 dapat bekerja dengan empat konfigurasi yang berbeda dari sebuah osilator. Konfigurasi dengan osilator kristal dan resistor-kapasitor (RC) adalah  yang paling sering digunakan, Konfigurasi inilah yang akan dibahas disini. Osilator dengan kristal disebut osilator XT, dan  pasangan resistor-kapasitor disebut osilator RC. Hal ini penting karena Anda perlu menentukan jenis osilator ketika merakit  mikrokontroler.

XT Oscillator
Kristal osilator disimpan dalam kemasan logam dengan dua pin di mana  frekuensi kristal berosilasi dituliskan pada body nya. Kapasitor keramik 30pF dihubungkan pada tiap kaki kristal dan kaki berikutnya disambungkan langsung ke ground.


 


Osilator dan kapasitor dapat dikemas menjadi satu dengan tiga pin. Elemen seperti itu disebut resonator keramik dan memiliki perwakilan di grafik seperti di bawah ini. Pusat pin elemen adalah ground, sedangkan pin akhir dihubungkan dengan pin OSC1 dan OSC2 pada mikrokontroler. Ketika merancang perangkat, aturan tersebut  untuk menempatkan osilator mikrokontroler lebih dekat, untuk menghindari gangguan/ interverensi ketika mikrokontroler menerima clock.


RC Oscillator

Dalam aplikasi yang tidak memerlukan ketepatan waktu yang diperhitungkan osilator RC lebih cocok, karena osilator ini lebih hemat biaya. Resonant frekuensi dari osilator RC bergantung pada tingkat pasokan tegangan, resistansi R, C kapasitas dan suhu kerja. Perlu disebutkan di sini bahwa frekuensi resonansi juga dipengaruhi oleh variasi normal dalam parameter proses, dengan toleransi R eksternal dan komponen C, dll


Diagram di atas menunjukkan bagaimana RC osilator dihubungkan dengan PIC16F84. Dengan nilai R resistor yang di bawah 2.2k, osilator dapat menjadi tidak stabil, atau bahkan bisa berhenti osilasi. Dengan nilai yang sangat tinggi R (ex.1M) osilator menjadi sangat sensitif terhadap kebisingan dan kelembaban. Disarankan bahwa nilai R resistor harus antara 3 dan 100k. Meskipun osilator akan bekerja tanpa kapasitor eksternal (C = 0pF), kapasitor di atas 20pF masih harus digunakan untuk kebisingan dan stabilitas. Tidak peduli  osilator yang sedang digunakan, untuk mendapatkan clock mikrokontroler dapat bekerja, sebuah clock osilator harus dibagi dengan 4. Osilator clock dibagi  4 juga dapat diperoleh pada pin OSC2/CLKOUT, ​​dan dapat digunakan untuk menguji atau sinkronisasi sirkuit logis lainnya.
 


Setelah diberi tegangan, osilator mulai berosilasi. Osilasi pada awalnya memiliki periode dan amplitudo tidak stabil, tetapi setelah beberapa periode waktu akan menjadi stabil.


Untuk mencegah clock tidak akurat, dan dapat mempengaruhi kinerja mikrokontroler, kita perlu menjaga mikrokontroler dalam keadaan reset saat stabilisasi clock osilator's. Diagram di atas menunjukkan bentuk khas sinyal yang didapat mikrokontroler  dari clock osilator.

Membuat PCB Single Layer Dengan Diptrace

Pada kesempatan kali ini saya ingin menunjukan langkah-langkah membuat skema rangkaian (schematic) dan langsung merubahnya kedalam PCB Layout single layer dengan memanfaatkan fungsi autorouter. sehingga proses penjaluran PCB secara otomatis. Semoga bermanfaat..

Ebook Tutorial Mikrokontroler PIC 16F84


  • Judul : PIC Microcontroller Project Book
  • Bahasa :Inggris
  • Jenis File : PDF (Adobe reader)
  • Jumlah Halaman :220
  • Lain-lain :
  • Isi : 

  1. Introducing Microcontroller
  2. PIC16F84 Microcontroller
  3. Reading I/O Lines
  4. PIC Basic Languange Reference
  5. DC Motor Control
  6. Stepper Motor Control
  7. LCD alphanumeric
  8. Servo Motor Control

Ebook tutorial PIC16F84 ini anda dapat download disini

Belajar Mikrokontroler PIC16F84 (Bagian 1)

PENGANTAR


PIC16F84 termasuk dalam kelas mikrokontroler 8-bit dengan arsitektur RISC. Struktur umumnya dapat dilihat dibawah ini mewakili blok dasar.
 
Program memory  (FLASH) - untuk menyimpan program yang ditulis.
Sejak memori dibuat dalam teknologi FLASH mikrokontroler ini dapat diprogram dan dihapus lebih dari sekali, itu membuat mikrokontroler ini cocok untuk pengembangan perangkat.
 
EEPROM - data memori yang perlu disimpan ketika tidak ada suplai.
Hal ini biasanya digunakan untuk menyimpan data penting yang tidak boleh hilang jika listrik tiba-tiba berhenti. Sebagai contoh, salah satu data tersebut berupa suhu yang ditugaskan di pengatur suhu. Jika selama kehilangan power supply data ini telah hilang, maka kita harus membuat penyesuaian sekali lagi pada saat power kembali menyala.

RAM - data memori yang digunakan oleh sebuah program selama pelaksanaannya.
Dalam RAM disimpan semua-hasil operasi atau data sementara  pada saat run-time.

Porta dan PORTB adalah koneksi fisik antara mikrokontroler dan dunia luar (perangkat lain berupa input/output). Port A memiliki lima pin, dan port B memiliki delapan pin.

FREE-RUN TIMER adalah sebuah register 8-bit di dalam mikrokontroler yang bekerja secara independen dari program ini. Pada setiap clock osilator keempat akan bertambah sampai mencapai maksimum (255), dan kemudian mulai menghitung lagi dari nol. Seperti kita ketahui waktu yang tepat antara setiap dua increment isi timer, timer dapat digunakan untuk mengukur waktu yang sangat berguna dengan beberapa perangkat.

CENTRAL PROCESSING UNIT memiliki peran elemen penghubung antara blok lainnya dalam mikrokontroler. berfungsi mengkoordinasikan dan menghubungkan antar tiap blok dan mengeksekusi program pengguna.


 


CISC, RISC

Sudah dikatakan bahwa PIC16F84 memiliki arsitektur RISC. Istilah ini sering ditemukan dalam literatur komputer, dan perlu dijelaskan di sini lebih terinci. Arsitektur Harvard adalah konsep baru dari von-Neumann. Ini muncul dari kebutuhan untuk mempercepat kerja mikrokontroler. Dalam arsitektur Harvard, bus data dan bus alamat yang terpisah. Sehingga aliran data yang lebih besar dimungkinkan melalui unit pengolahan pusat (CPU), dan tentu saja, kecepatan yang lebih besar dari pekerjaan. Memisahkan program dari memori data memungkinkan instruksi data lebih dari 8-bit. PIC16F84 menggunakan 14 bit untuk instruksi yang memungkinkan untuk semua instruksi menjadi satu instruksi kata. Hal ini juga khas untuk arsitektur Harvard memiliki instruksi kurang dari von-Neumann, dan memiliki instruksi biasanya dieksekusi dalam satu siklus.

Mikrokontroler dengan arsitektur Harvard juga disebut "mikrokontroler RISC". RISC singkatan dari Reduced Instruction Set Computer. Mikrokontroler dengan arsitektur von-Neumann disebut 'mikrokontroler CISC'. Judul CISC adalah singkatan dari Kompleks Instruction Set Computer.

Karena PIC16F84 adalah mikrokontroler RISC, yang berarti bahwa ia memiliki set instruksi berkurang, lebih tepatnya 35 instruksi. (ex. Intel dan mikrokontroler Motorola memiliki lebih dari seratus petunjuk) Semua instruksi dieksekusi dalam satu siklus kecuali untuk instruksi melompat dan cabang. Menurut apa pembuatnya mengatakan, PIC16F84 biasanya mencapai hasil kompresi 2:1 pada kode dan 4:1 pada kecepatan dalam kaitannya dengan mikrokontroler 8-bit lain di kelasnya.

APLIKASI

PIC16F84 tepat untuk banyak kegunaan, dari industri otomotif dan peralatan rumah pengendalian untuk instrumen industri, sensor remote, kunci pintu listrik dan alat pengaman. Hal ini juga ideal untuk smart card serta perangkat baterai yang disediakan karena konsumsi yang rendah.

Memori EEPROM membuatnya lebih mudah untuk menerapkan mikrokontroler ke perangkat penyimpanan permanen dimana berbagai parameter yang diperlukan (kode untuk pemancar, kecepatan motor, frekuensi penerima, dll). Biaya rendah, konsumsi yang rendah, penanganan yang mudah dan fleksibilitas membuat PIC16F84 berlaku bahkan di daerah di mana mikrokontroler sebelumnya tidak dianggap (contoh: fungsi timer, penggantian interface dalam sistem yang lebih besar, aplikasi coprocessor, dll).

Fitur In System Programmer dari chip ini (bersama dengan hanya menggunakan dua pin dalam transfer data) memungkinkan fleksibilitas produk, setelah perakitan dan pengujian telah selesai. Kemampuan ini dapat digunakan untuk membuat produksi perakitan, untuk menyimpan data kalibrasi tersedia hanya setelah tes akhir, atau dapat digunakan untuk meningkatkan program pada produk jadi (program dapat di upgrade).

Clock / instruction cycle
Clock adalah pemacu utama mikrokontroler, dan diperoleh dari komponen eksternal disebut "osilator".

Clock dari osilator mikrokontroler masuk melalui OSC1 pin dimana sirkuit internal dari mikrokontroler membagi clock menjadi empat bahkan jam Q1, Q2, Q3, dan Q4 yang tidak tumpang tindih. Keempat clock membentuk satu siklus instruksi (juga disebut siklus mesin) selama salah satu instruksi dieksekusi.

Pelaksanaan instruksi dimulai dengan memanggil instruksi yang berikutnya dalam string. Instruksi dipanggil dari memori program pada setiap Q1 dan ditulis di register instruksi pada Q4. Decoding dan eksekusi instruksi yang dilakukan antara Q1 dan Q4 siklus berikutnya. Pada diagram berikut ini kita bisa melihat hubungan antara siklus instruksi dan clock dari osilator (OSC1) serta bahwa clock internal Q1-Q4. Program counter (PC) memiliki informasi tentang alamat dari instruksi berikutnya.


Pipelining
Instruksi cycle terdiri dari siklus Q1, Q2, Q3 dan Q4. Siklus memanggil dan melaksanakan instruksi yang terhubung dalam membuat panggilan, satu cycle instruksi yang diperlukan, serta membutuhkan untuk decoding dan eksekusi. Namun, karena pipelining, setiap instruksi secara efektif dilaksanakan dalam satu cycle. Jika instruksi menyebabkan perubahan pada program counter, dan PC tidak menunjuk ke instruksi berikutnya namun untuk beberapa alamat lain ( terjadi lompatan atau menuju subprogram panggilan), dua siklus yang diperlukan untuk mengeksekusi instruksi. Hal ini karena instruksi harus diproses lagi, tapi kali ini dari alamat yang benar. Siklus memanggil dimulai dengan clock Q1, dengan menulis ke register instruksi (IR). Decoding dan melaksanakan dimulai dengan Q2, Q3 dan Q4.


TCY0 membaca di instruksi MOVLW 55h (tidak masalah apa instruksi dieksekusi, karena tidak ada rectangle digambarkan di bagian atas).
TCY1 menjalankan instruksi MOVLW 55h dan membaca di MOVWF PORTB.
TCY2 mengeksekusi MOVWF PORTB dan membaca di CALL SUB_1.
TCY3 menjalankan panggilan dari subprogram CALL SUB_1, dan membaca dalam instruksi BSF Porta, BIT3. Seperti instruksi ini bukanlah yang kita butuhkan, atau tidak instruksi pertama dari subprogram SUB_1 yang eksekusi yang berikutnya dalam rangka, instruksi harus dibaca lagi. Ini adalah contoh yang baik dari suatu instruksi membutuhkan lebih dari satu siklus.
TCY4 cycle instruksi sama sekali dipakai untuk membaca instruksi pertama dari subprogram di alamat SUB_1.
TCY5 mengeksekusi instruksi pertama dari subprogram SUB_1 dan membaca dalam satu berikutnya.

Deskripsi Pin

PIC16F84 memiliki total 18 pin. Hal ini paling sering ditemukan dalam jenis DIP18 , tetapi juga dapat ditemukan dalam SMD yang lebih kecil dari DIP. DIP adalah singkatan untuk Dual Inline Package. SMD adalah singkatan untuk Surface Mount Device yang menunjukan jenis paket komponen.
Pin pada mikrokontroler PIC16F84 memiliki arti berikut:

Pin pin no.1 RA2 Kedua pada port A. Tidak memiliki fungsi tambahan
Pin pin no.2 Ketiga RA3 pada port A. Tidak memiliki fungsi tambahan.
Pin pin no.3 RA4 Keempat pada port A. Tock 1 yang berfungsi sebagai timer juga ditemukan pada pin ini
Pin no.4 MCLR Reset input dan tegangan Vpp pemrograman mikrokontroler
Pin Nomor 5 Vss Ground pasokan listrik.
Pin no.6 RB0 Zero pin pada port input B. Interrupt adalah fungsi tambahan.
Pin no.7 RB1 Pertama pin pada port B. tanpa fungsi tambahan.
Pin Nomor 8 RB2 Kedua pin pada port B. tanpa fungsi tambahan.
Pin pin no.9 Ketiga RB3 pada port B. tanpa fungsi tambahan.
Pin pin no.10 RB4 Keempat pada port B. tanpa fungsi tambahan.
Pin No.11 RB5 Kelima pin pada port B. tanpa fungsi tambahan.
Pin no.12 RB6 Keenam pin pada port line B. 'Clock' dalam mode program.
Pin 13 RB7 pin Ketujuh on line B. port 'Data' dalam mode program.
Pin no.14 Vdd pasokan listrik kutub Positif.
Pin Pin no.15 OSC2 ditugaskan untuk menghubungkan dengan sebuah osilator
Pin Pin No.16 OSC1 ditugaskan untuk menghubungkan dengan sebuah osilator
Pin pin RA2 No.17 Kedua di A. port tanpa fungsi tambahan
Pin No.18 RA1 Pertama pin pada port A. tanpa fungsi tambahan.