Sunday, February 27, 2011

Selingan: Projek Mini

Assalamualaikum semua,


Insya allah saya akan mulakan projek mini 'Sistem Keselamatan Rumah DIY' dalam minggu depan jika tiada masalah / tidak sibuk sangat.

Saya akan menggunakan litar sedia ada (PIC board ver2) dan satu atau dua litar baru (mengikut kesesuaian).

Jadi, harap dapat bersabar.

Wednesday, February 23, 2011

Tutorial 4.4: PIC Configuration - Penerangan

Assalamualaikum semua,

Alhamdulillah saya berkesempatan untuk meng update blog ini untuk siri 4.x. Tutorial 4.4 adalah yang terakhir dalam siri 4.x ini.

Harap tutorial ini dapat membantu sesiapa yang ingin belajar mikro controller PIC dan jika ada soalan, silakan kemuka di chat box (menu sebelah kiri) atau send email ke allpicproject@gmail.com.

Selamat membaca.

Terima kasih.


1. Paparan standard menu 'PIC Configuration'


2. FOSC : Oscillator Selection Bits – untuk memilih jenis clock yang digunakan oleh PIC

RC – Clock dijana oleh litar RC (Perintang dan Capacitor) dan dimasukkan ke PIC melalui pin RA7 manakala pin RA6 akan menghasilkan clock tersebut untuk kegunaan alatan luaran (external clock for other usage).

RCIO - Clock dijana oleh litar RC (Perintang dan Capacitor) dan dimasukkan ke PIC melalui pin RA7 manakala pin RA6 berfungsi sebagai normal I/O ( masukan /keluaran).

INTOSC – Clock dalaman PIC itu sendiri ( kelajuan sehingga 8Mhz) manakala pin RA6 akan menghasilkan clock tersebut untuk kegunaan luaran dan pin RA7 berfungsi sebagai normal I/O.

INTOSCIO – Clock dalaman PIC itu sendiri ( kelajuan sehingga 8Mhz ) manakala pin RA6 n RA7 berfungsi sebagai normal I/O.

EC – Clock dari luar (dari timer luar atau sumber luar) dan dimasukkan ke dalam PIC melalui pin RA7 dan pin RA6 berfungsi sebagai normal I/O.

HS – Clock kelajuan tinggi menggunakan Crystal (dalam kes ini Crstal yang digunakan = 19.660800 Mhz) dan di sambungkan kepada pin RA6 n RA7.

XT – Clock kelajuan biasa menggunakan Crystal (biasanya 4Mhz atau 1Mhz)

LP – Low power/kelajuan rendah menggunakan Crystal ( contoh 32 kHz )

Rujuk datasheet PIC16F887 bahagian 4.0 untuk maklumat lanjut.

Dalam pembelajaran di blog ini, setting ini di set kepada ‘HS’


3. WDTE : Watchdog Timer Enable Bit

Secara ringkasnya fungsi Watchdog Timer – WDT (jika di set ‘WDT enabled’) adalah untuk me ‘reset’ kan PIC jika PIC hang / stuck semasa beroperasi secara uutomatik. Ini sangat sesuai jika gadget PIC tersebut berada di luar kawasan (tiada manusia yang akan me ‘reset’ kan PIC tersebut secara manual). WDT akan me ‘reset’ kan PIC bila mana pemasa (timer) WDT ‘overflow’ / time-up (lebih kurang sampai nilai tertentu).

Jika setting ini di ‘enable’ (WDTE Enabled), adalah perlu ada dalam software/firmware, satu routine di dalam PIC tersebut untuk sentiasa me ‘reset’kan WDT ini supaya WDT tidak akan me ‘reset’ PIC secara tiba-tiba ( bila tiba masa WDT overflow/time-up) .

Kegagalan me ‘reset’ WDT di dalam PIC (melalui software/firmware) akan menyebabkan WDT tersebut akan me ‘reset’ PIC tersebut walaupun PIC itu beroperasi secara normal (tidak hang / stuck ).

Dalam pembelajaran di blog ini, setting ini di set kepada ‘WDT disabled and can …. ‘ (jadi tak perlu tulis routine dalam software/firmware PIC untuk sentiasa me ‘reset’ WDT.


4. PWRTE : Power-up Timer Enable Bit

Setting ini ( PWRT enabled) berfungsi untuk memberi tempoh masa tertentu supaya sumber bekalan PIC stabil sebelum PIC mula beroperasi manakala ‘PWRT disabled’ adalah sebaliknya.

Dalam pembelajaran di blog ini, setting ini di set kepada ‘PWRT enabled’


5. MCLRE : RE3/MCLR pin function select bit

MCLR adalah ‘master clear’ atau lebih di kenali sebagai ‘reset’. Jika pin ini ( pin RE3/MCLR iaitu pin no. 1) di sambung ke ‘ground’ PIC akan berada dalam keadaan ‘reset’.

Jika setting ini ( RE3/MCLR pin function is MCLR) digunakan, maka pin ini ( pin no. 1) mestilah di sambung ke 5V+ melalui perintang 10k ( ‘pull-up’) supaya PIC boleh beroperasi ( bukan dalam keadaan ‘reset’). Biasanya pin ini juga di sambung ke ‘ground’ melalui butang tekan / push button untuk me ‘reset’ PIC secara manual.

Jika setting ini ( ‘RE3/MCLR pin function is digital input … ‘) di gunakan, maka pin RE3/MCLR berfungsi sebagai normal masukan dan tidak boleh berfungsi untuk me ‘reset’ PIC. ( Sila OFF/ON sumber kuasa PIC untuk ‘reset’ PIC).

Dalam pembelajaran di blog ini, setting ini di set kepada ‘RE3/MCLR pin function is MCLR’

6. CP : Code Protection bit

Setting ini ( Program memory code protection is enabled) akan melindungi code/firware dalam PIC tersebut daripada di lihat/baca ( melalui programmer / PICkit2 ).

Setting ini ( Program memory code protection is disabled), membolehkan code dalam PIC dibaca dengan programmer / PICkit2.

Dalam pembelajaran di blog ini, setting ini di set kepada ‘Program memory code protection is disabled’


7. CPD : Data Code Protection bit

Setting ini ( Data memory code protection is enabled) akan melindungi data dalam PIC tersebut daripada di lihat/baca ( melalui programmer / PICkit2 ).

Setting ini ( Data memory code protection is disabled), membolehkan data dalam PIC dibaca dengan programmer / PICkit2.

Dalam pembelajaran di blog ini, setting ini di set kepada ‘Data memory code protection is disabled’


8. BOREN : Brown Out Reset Selection bits

Secara ringkasnya BOREN (jika di enabled) ini adalah berfungsi untuk me ‘reset’ PIC (berada dalam keadaan reset sehingga bekalan kuasa normal) jika sumber kuasa PIC kurang daripada paras tertentu iaitu di bawah/kurang dari 4.0V atau 2.1V bergantung setting di step x)

Ini adalah bertujuan supaya PIC dapat beroperasi dalam keadaan sempurna (tidak melakukan kesilapan disebabkan bekalan kuasa PIC tidak stabil).

Dalam pembelajaran di blog ini, setting ini di set kepada ‘BOR enabled’


9. IESO : Internal External Switchover bit

Setting ini (Internal/External Switchover mode is enabled) membenarkan clock yang digunakan PIC (contohnya jika crystal gagal berfungsi dengan baik) di tukar kepada internal clock ( clock dalaman PIC ) dan sebaliknya.

Dalam pembelajaran di blog ini, setting ini di set kepada ‘External Switchover mode is enabled’


10. FCMEN : Fail-Safe Clock Monitor Enable bit

Setting ini (Fail-Safe Clock Monitor Enable is enabled) memerhati / monitor status clock yang digunakan oleh PIC samada ia berfungsi dengan baik atau sebaliknya.

Dalam pembelajaran di blog ini, setting ini di set kepada ‘Fail-Safe Clock Monitor Enable is enabled’


11. LVP : Low Voltage Programming Enable bit

Setting ini (RB3/PGM pin has PGM function, low voltage programming enabled) bermaksud membenarkan PIC ini di program menggunakan kaedah ‘low voltage programming’ iaitu menggunakan voltage 5V sahaja berbanding kaedah ‘high voltage programming’ ( PICkit2 menggunakan kaedah ini) iaitu 12.5V – 13.0V.

Jika setting di atas digunakan, pin RB3/PGM tidak boleh digunakan sebagai normal I/O dan ini merugikan jika banyak input/output diperlukan dalam sesuatu projek PIC. Dengan setting ini juga, pin RB3/PGM mestilah di ‘pull-up’ jika tidak menggunakannya sebagai pin ‘low voltage programming’ supaya PIC tidak berada dalam mod programming.

Jadi jika guna setting ini (RB3 pin has digital I/O, HV on MCLR must be used for programmimg) pin RB3 tidak dibazirkan dan akan berfungsi sebagai normal I/O dan untuk program PIC, kaedah biasa iaitu kaedah ‘high voltage programming’ (ie. Guna PICkit2 programmer) boleh digunakan.

Dalam pembelajaran di blog ini, setting ini di set kepada ‘RB3 pin has digital I/O, HV on MCLR must be used for programmimg’


12. BOR4V : Brown-out Reset Selection bit

Dalam pembelajaran di blog ini, setting ini di set kepada ‘Brown-out Reset set to 4.0V’

13. WRT : Flash Program Memory Self Write Enable bits.

Dalam pembelajaran di blog ini, setting ini di set kepada ‘Write protection off’ (tidak digunakan dalam pembelajaran di blog ini).


14. Paparan Configuration yang akan digunakan dalam seluruh tutorial di blog ini
(kecuali atas sebab-sebab tertentu).



Untuk lebih lanjut/terperinci, sila rujuk datasheet PIC16F887 bahagian 14.1 (seperti gambar dibawah).



Cara-cara lain untuk set config untuk PIC


1. Config code (Hex code) dimasukkan terus ke dalam program C (rujuk arahan dalam kotak merah).

Bila kita masukkan kod config PIC terus ke dalam program C, setting yang kita set di menu 'Configuration bits' ((tutorial setting PIC yang sebelum ini) akan di abaikan dan PIC akan guna config code dalam program C tersebut dalam proses compilation (process tukar bahasa C kepada Hex code).

Saya akan gunakan keadah ini dalam tutorial saya yang seterusnya


2. 1. Config code (code yang difahami manusia) dimasukkan terus ke dalam program C (rujuk arahan dalam kotak merah).

Cara ini pun boleh. Cara ini mudah di fahami oleh user/manusia. Bila config code di set dengan cara ini, setting yang di set di menu 'Configuration Bits' akan di abaikan.

Sila rujuk file pic16F887.h di dalam Hi-Tech C folder (installation folder di drive C:\) untuk arahan-arahan lain.




Sekian, terima kasih.

Sunday, February 13, 2011

Selingan

Assalamualaikum semua,

Minta maaf bebanyak kerana tak dapat update minggu ni.

Sebenarnya saya dah sediakan bahan2 untuk upload hari ni tapi laptop saya ada masalah besar (rasanya motherboard dah K.O).

Insya allah, saya updatekan blog ni secepat mungkin bila masalah tersebut selesai.

Harap maaf.

Monday, February 7, 2011

Info Selingan

Assalamualaikum semua.

Insya allah, saya cuba sambung tutorial 4.x yang terakhir dalam minggu ni. Lepas tu, saya akan teruskan dengan projek mini (sistem keselamatan rumah).

Apa2pun harap bersabar. Saya baru balik dari kampung atas urusan keluarga.