1 Konsep Dasar Mikrokontroler
Mikrokontroler adalah suatu chip dengan kepadatan
yang sangat tinggi, dimana semua bagian yang diperlukan untuk suatu kontroler
sudah dikemas dalam satu keping.
a. Struktur Mikrokontroler
Masing-masing
bagian tersebut saling dihubungkan melalui internal bus, umumnya terdiri dari 3
bus yaitu addres bus, data bus, dan control bus.
1.
Register
Register adalah suatu tempat penyimpanan (variable)
bilangan bulat 8 atau 6 bit. Pada umumnya register jumlahnya banyak,
masing-masing ada yang memiliki fungsi khusus dan ada pula yang memiliki
kegunaan umum. Register yang memiliki fungsi khusus misalnya adalah register
timer yang berisi data perhitungan pulsa untuk timer, atau register
pengatur mode operasi counter (pencacah pulsa). Sedangkan register umum
digunakan untuk menyimpan data sementara yang diperlukan untuk proses
perhitungan dan proses operasi mikrokontroler. Register dengan kegunaan umum
dibutuhkan mengingat pada saat yang bersamaan mikrokontroler hanya mampu
melakukan operasi aritmetik atau logic hanya pada satu atau dua perand saja.
Sehingga untuk operas-operasi yang melibatkan banyak variable harus
dimanipulasi dengan menggunakan variable-variabel register umum.
2.
Accumulator
Merupakan salah satu register khusus yang berfungsi
sebagai operand proses aritmetika dan logika.
3.
Program
Counter
Merupakan salah satu register khusus yang berfungsi
sebagai pencacah/ penghitung eksekusi program mikrokontroler.
4.
ALU
(Arithmatic and Logic Unit)
ALU memiliki kemampuan mengerjakan proses-prose
aritmatika (Penjumlahan, pengurangan, perkalian, pembagian) dan operasi logika
(misalnya AND, OR, XOR, NOT) terhadap bilangan bulat 8 atau 6 bit.
5.
Clock
Circuit
Mikrokontroler
adalah rangkaian logika skuensial, dimana proses kerjanya berjalan melalui
sinkronisasi clock. Karenanya diperlukan clock circuit yang
menyediakan clock bagi seluruh bagian rangkaian.
6.
Internal
ROM (Read Only Memory)
Merupakan memori
penyimpanan data yang isinya tidak dapat diubah atau dihapus (hanya dapat
dibaca). ROM biasanya diisi dengan program untuk menjalankan mikrokontroler
segera setelah power dinyalakan, dan berisi data-data konstanta yang
diperlukan oleh program. Isi RON tidak dapat hilang walaupun power dimatikan.
7.
Internal
RAM (Random Acces Memory)
Merupakan
memori penyimpanan data yang isinya dapat diubah atau dihapus. RAM biasanya
berisi data-data variable dan register. Data yang tersimpan pada RAM bersifat
hiking jika catu daya yang terhubung padanya dimatikan.
8.
Stack
Pointer
Stack adalah
bagian dari RAM yang memiliki metode penyimpanan dan pengambilan data secara
khusus. Data yang disimpan dan dibaca tidak dapat dilakukan dengan metode acak.
Karena data yang masuk kedalam stack pada urutan yang terakhir adalah data yang
pertama kali dibaca kembali. Stack pointer berisi offset dimana
posisi data stack yang terakhir masuk (atau yang pertama kali dapat
diambil).
9.
I/
O (Input/ Output) Port
Merupakan saran
yang dipergunakan oleh mikrokontroler untuk mengakses peralatan-peralatan lain
diluar dirinya, berupa pin-pin yang dapat berfungsi untuk mengeluarkan data
digital ataupun menginputkan data.
10.
Interrupt
Circuits
Adalah
rangkaian yang memiliki fungsi untuk mengendalikan sinyal-sinyal interupsi baik
internal maupun eksternal. Adanya sinyal interupsi akan menghentikan eksekusi
normal program mikrokontroler untuk selanjutnya menjalankan sub-program unutk
melayani interupsi tersebut.
Diagram
balik tersebut tidaklah selalu sama untuk setiap jenis mikrokontroler. Beberapa
mikrokontroler menyertakan rangkaian ADC (Analog to Digital Converter)
di dalamnya, ada pula yang menyertakan port I/O serial di samping port I/O
parallel yang sudah ada.
b. Cara Kerja Mikrokontroler
Prinsip kerja dari mikrokontroler adalah sebagi berikut :
1.
Berdasarkan
nilai yang berada pada register Program Counter, mikrokontroler
mengambil data pada ROM dengan address sebagaimana nilai yang tertera program
counter. Selanjutnya Program Counter ditambah nilainya dengan 1 (increment)
secara otomatis. Data yang diambil tersebut adalaha urutan instruksi program
pengendali mikrokontroler yang sebelumnya telah dibuat oleh pemakai.
2.
Instruksi
tersebut diolah dan dijalankan. Proses pengerjaan bergantung pada jenis instruksi:
bisa membaca, mengubah nilai-nilai pada register, RAM, isi port, atau melakukan
pembacaan dan dilanjutkan dengan pengubahan data.
3.
Program
Counter telah berubah
nilainya (baik karena penambahan otomatis sebagaimana pada langkah 1 di atas
atau karena pengubahan pada langkah 2). Selanjutnya yang dilakukan
mikrokontroler adalah mengulang kembali siklus ini pada langkah 1. Demikian
seterusnya hingga power dimatikan.
Dari pengertian di atas dapat dismpulkan bahwa pada
dasarnya unjuk kerja mikrokontroler sangatlah bergantung pada urutan instruksi
yang dijalankannya, yaitu program yang ditulis di ROM.
2 Mikrokontroler ATmega16
AVR
merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis arsitektur RISC
(Reduced Instruction Set Computer). Hampir semua instruksi dieksekusi dalam
satu siklus clock. AVR mempunyai 32 register general-purpose,
timer/counter fleksibel dengan mode compare, interrupt internal dan
eksternal, serial UART, programmable Watchdog Timer, dan mode
power saving, ADC dan PWM internal. AVR juga mempunyai In-System
Programmable Flash on-chip yang mengijinkan memori program untuk diprogram
ulang dalam sistem menggunakan hubungan serial SPI. ATMega16.
ATMega16 mempunyai throughput mendekati
1 MIPS per MHz membuat disainer sistem untuk mengoptimasi konsumsi daya versus
kecepatan proses.
Pin-pin pada ATMega16 dengan kemasan 40-pin
DIP (dual inline package) ditunjukkan oleh gambar 4.2. Guna
memaksimalkan performa, AVR menggunakan arsitektur Harvard (dengan
memori dan bus terpisah untuk program dan data).
a. Port sebagai input/output digital
ATMega16
mempunyai empat buah port yang bernama PortA, PortB, PortC, dan PortD.
Keempat port tersebut merupakan jalur bidirectional dengan pilihan internal
pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn, PORTxn,
dan PINxn. Huruf ‘x’mewakili nama huruf dari port sedangkan huruf ‘n’ mewakili
nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn terdapat pada I/O
address PORTx, dan bit PINxn terdapat pada I/O address PINx. Bit DDxn dalam
register DDRx (Data Direction Register) menentukan arah pin. Bila DDxn
diset 1 maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka Px
berfungsi sebagai pin input.Bila PORTxn diset 1 pada saat pin terkonfigurasi
sebagai pin input, maka resistor
pull-up akan diaktifkan. Untuk mematikan resistor pull-up,
PORTxn harus diset 0 atau pin dikonfigurasi sebagai pin output. Pin port adalah
tri-state setelah kondisi reset. Bila PORTxn diset 1 pada saat pin
terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila
PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port
akan berlogika 0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0,
PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada
kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1)
atau kondisi output low
(DDxn=1, PORTxn=0). Biasanya, kondisi pull-up
enabled dapat diterima sepenuhnya, selama lingkungan impedansi tinggi tidak
memperhatikan perbedaan antara sebuah strong high driver dengan sebuah pull-up.
Jika ini bukan suatu masalah, maka bit PUD pada register SFIOR dapat diset 1
untuk mematikan semua pull-up dalam semua port. Peralihan dari kondisi input
dengan pull-up ke kondisi output low juga menimbulkan masalah yang
sama. Kita harus menggunakan kondisi tri-state (DDxn=0, PORTxn=0) atau
kondisi output high (DDxn=1, PORTxn=0) sebagai kondisi transisi.
Bit 2 – PUD : Pull-up Disable. Bila
bit diset bernilai 1 maka pull-up pada port I/O akan dimatikan walaupun register
DDxn dan PORTxn dikonfigurasikan untuk menyalakan pull-up (DDxn=0,
PORTxn=1).
b. Timer
Timer/counter adalah fasilitas dari ATMega16
yang digunakan untuk perhitungan pewaktuan. Beberapa fasilitas chanel dari
timer counter antara lain: counter channel tunggal, pengosongan data
timer sesuai dengan data pembanding, bebas -glitch, tahap yang tepat Pulse
Width Modulation (PWM), pembangkit frekuensi, event counter external..
c. Serial pada ATMega16
Universal
synchronous dan asynchronous
pemancar dan penerima serial adalah suatu alat komunikasi serial sangat
fleksibel. Jenis yang utama adalah:
a. Operasi full duplex (register penerima
dan pengirim serial dapat berdiri sendiri)
b. Operasi Asychronous atau synchronous
c. Master atau slave mendapat clock dengan
operasi synchronous
d. Pembangkit baud rate dengan resolusi
tinggi
e. Dukung frames serial dengan 5, 6, 7, 8
atau 9 Data bit dan 1 atau 2 Stop bit
f.
Tahap odd atau even parity dan parity check didukung
oleh hardware
g. Pendeteksian data overrun
h. Pendeteksi framing error
i.
Pemfilteran gangguan (noise) meliputi pendeteksian bit false start dan
pendeteksian low pass filter digital
j.
Tiga interrupt terdiri dari TX complete, TX data register empty dan
RX complete.
k. Mode komunikasi multi-processor
l.
Mode komunikasi double speed asynchronous
3. Karakteristik Mikrokontroler
ATMEGA 16
Fitur yang tersedia pada ATMEGA 16 adalah sebagai
berikut :
1.
Terdiri dari 512 bytes EEPROM
2.
Frekuensi clock maksimum 16 MHz
3.
Memiliki 32 buah jalur I/O yaitu Port A, Port B,
Port C, Port D
4.
Sistem mikroprosesor 8 bit berbasis RISC dengan
kecepatan maksimal 16 MHz.
5.
Kapasitas memori flash 8 Kb,SRAM sebesar 512 byte
dan EEPROM (Electrically Erasable Programmable Read Only Memory)sebesar
512 byte.
6.
Port Komunikasi serial (USART) dengan
kecepatan maksimal 2,5 Mbps.
7.
Fitur peripheral
a.
Memiliki tiga buah timer/counter dengan kemampuan pembanding (2 buah timer/counter 8
bit dengan prescaler terpisah dan mode compare), (1 buah timer/counter 16 bit dengan prescaler terpisah dengan mode compare dan mode capture).
b.
Real time counter dengan Osillator tersendiri
c.
4 channel PWM
8 channel,10 bit ADC
mari mampir ke sini http://blognyaeko.wordpress.com/ untuk tutorial mikrokontroler, plc, dan visual programming
ReplyDeleteokeh pak eko ane kpn2 mampir ke blog pak eko
ReplyDelete