Senin, 22 September 2014

Istilah,Bagian dan Fungsi Microcontroller



Memori 
Memori adalah bagian microcontroller untuk menyimpan Program dan data. 

ada 3 bagian utama sebuah memori yaitu alamat,data dan control baca atau tulis R/W   
jenis memory antara lain :
1. RAM (random access memory)  : CPU bisa  menulis/menyimpan  dan membaca  kedlm memori ini , memori akan hilang jika power supply dihilangkan.
2. ROM (read-only memory) : memori yg hanya bisa sekali ditulis dan selanjutnya hanya bisa dibaca .data tdk hilang jika power dihilangkan dihilangkan  
3. EPROM (erasable programmable read-only memory) : CPU bisa  menulis/menyimpan  dan membaca  kedlm memori, memori tdk  hilang jika power supply dihilangkan. (cara penulisan dgn cara tertentu/dgn alat programmer) cara menghapus data dengan disinari cahaya ultra violet atau bisa juga dgn sinar matahari beberapa menit
4. EEPROM (electrically erasable programmable read-only memory) : CPU bisa  menulis/menyimpan  dan membaca  kedlm memori, memori tdk  hilang jika power supply dihilangkan. (cara penulisan dgn cara tertentu/dgn alat programmer)  
RAMEEPROMEPROMROM
PERMANENTDKTDKTDKYA
volatileNonvolatileNonvolatileNonvolatile
TEMPAT PENYIMPANDATAPROGRAM/DATAPROGRAMPROGRAM

Register

Mcu dalam memproses data memori , ia akan mengambil data dimemori dan menyimpan kedalam register didlm CPU setelah diproses hasil akan dikirim kembali kememori. Register di cpu biasanya terdiri dari 2 jenis yaitu Akumulator dan index register
Accumulators digunakan dlm perhitungan arithmetic operations, like addition, subtraction, or performing logical and bit operations .Index registers digunakan menujuk alamat  data di memory. 
contoh register pada MCU  68HC11.
  
68HC11 punya 2 register accumulators, labeled A and B. masing register 8-bit : menyimpan 1 byte  data.
index registers X dan Y , 16-bit  biasa digunakan menunjukan data di memory.
Stack Pointer, atau SP register, menyimpan program stack.  stack  menyimpan  temporary  data, dan menyimpan alamat return sebelum subroutine dipanggil.
Register Program Counter, or PC, menyimpan alamat yg sedang diexsekusi CPU. nilai  PC  automatis bertambah 1 tiap instruksi dieksekusi.


CPU adalah bagian utama sebuah microcontroller dialah yg melaksanakan(mengeksekusi) program yg ada di memori dalam melaksanakan tugasnya ia dibantu beberpa beberapa  memori internal di dlm cpu yg disebut register.Dalam melakukan berbagai operasi perhitungan data yg ada dimemori  , cpu mengambil data dimemori dan menyimpan diregister agar lebih efisien.
misal  operasi penjumlahan  data di 2 lokasi memori lokasi data dilokasi memori1 disimpan diregister1 data kedua dari lokasi memori disimpan di register2 hasilnya dismpan diregister3  
  



Bus adalah nama untuk group koneksi2 ada 2 jenis bus : bus data dan bus alamat


jalur data terdiri dari 8 bit,16 bit,32 bit tapi untuk microcontroller yg kita pelajari terdiri dari 8 bit data (1byte) dan jalur alamat jumlahnya variatif tergantung jenis microcontroller, jumlah jalur alamat menunjukan banyaknya lokasi memori yg bisa diakses.

Misal bus alamat  ada 3 (A0,A1,A2)  maka  lokasi alamat di memori yg bisa diakses adalah  ada 8 lokasi alamat di memori  , 8 = 2
ALAMAT (A2-A1-A0)ISI MEMORI
000
001
010
011
100
101
110
111 
        Memori dng 3 jalur alamat
 Jadi jika bus alamat ada 16 bit (A0~A15) maka jumlah alamat yang bisa diakses sebanyak 216 = 65536 lokasi memori 

Untuk berhubungan dengan dunia luar seperti dengan relay, LED, sensor, switch dan lain-lain microcontroller menggunalkan input/output port,  jenis port ada 3 yaitu port untuk mengambil sinyal dari luar(disebut input port) ,port untuk mengeluarkansinyal (output port) dan ada port yg bisa untuk input maupun output pd kaki yg sama 1 kaki / bidirectional . 

cara menulis/membaca persis seperti menulis/membaca memori, cuma alamatnya bisa nomor port/pin microcontroller
Komunikasi Serial
Untuk berkomunikasi dengan microcontroller / pc lain   salah satu  metoda yang populer adalah secara serial dan paralel  misal  microcontroller akan mengirim 1 byte/huruf  "A"  (dlm biner 1110 1111)  mengirim secara paralel berarti satu clock dikirim sekaligus tapi butuh minimal 8 kabel/pin dan secara serial ia dikirim satu persatu bit, jadi minimal 8 clock dibutuhkan untuk mengirim "A" tapi hanya membutuhkan minimal 2 kabel/  pin,    

Komunikasi serial antara Microcontroller dng Microcontroller atau dgn PC

Untuk microcontroller biasanya menggunakan serial , jadi butuh hanya 2 pin untuk mengirim dan menerima pada waktu yang sama  dan ini disebut full duplex.


Untuk mengetahuai waktu , panjang sinyal, frekwensi dll kita membutuhkan timer. dasarnya adalah  timer  free-run counter adalah sebuah register counter  yang nilainya bertambah satu mulai dari 0000 sampai ffff  kemudian kembali 0000 terus menerus berulang .


Kadang kadang karena berbagai sebab microcontroller mengalamai program hang sama seperti sebuah pc , untuk pc biasanya kita mereset , tapi untuk microcontroller agak sulit jika kita harus yg mereset sendiri kenapa? karena biasanya microcontroller biasanya bekerja pada peralatan 24 jam seperti sistem alarm,ac dll  ngga mungkin kita tungguin seharian  ya ngga? .untuk mengatasi masalah ini dibuatlah sistem timer yang bisa mereset otomatis jika terjadi program hang ,namanya wacthdog timer ,ia akan mereset program microcontroller secara berkala, misal tiap 5 detik ia akan mereset program microcontroller. lalu bagai mana kalo program tdk hang ?  ia tetap akan mereset CPU pada detik ke 5 .
jadi biar wacthdog timer tidak mereset cpu ketika keadaan normal kita harus mereset watchdog timer maksimal tiap 4 detik jadi sebelum ia mereset CPU , artinya pada detik ke 4 kita reset wacth dog timer,jadi sebelum watchdog timer mereset cpu pd detik kelima sudah kita reset duluan watcdog timernya pd detik ke 4, perintah mereset wacthdog timer ada didlm program. jadi ketika program kita hang maka tdk ada lagi perintah yg mereset wachtdog timer sehingga WDT  akan mereset CPU..




Perlu diingat bahwa microcontroller bekerja pada sinyal digital 1 atau 0 , lalu bagaimana ia membaca sinyal analog , beberapa microcontroller dilengkapi  analog digital converter misalnya pada microcontroller mc68hc11 buatan motorola.  Tugas adc merubah sinyal analog kedigital sehingga bisa diproses microcontroller. 

2 komentar: