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)
RAM | EEPROM | EPROM | ROM | |
PERMANEN | TDK | TDK | TDK | YA |
volatile | Nonvolatile | Nonvolatile | Nonvolatile | |
TEMPAT PENYIMPAN | DATA | PROGRAM/DATA | PROGRAM | PROGRAM |
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 = 23
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.
gan istilah nya mana ya ???
BalasHapusgan istilah nya mana ya ???
BalasHapus