Saturday 31 August 2013

Mikrokontroler


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.
Masing-masing bagian memiliki fungsi-fungsi :
        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

2 comments:

  1. mari mampir ke sini http://blognyaeko.wordpress.com/ untuk tutorial mikrokontroler, plc, dan visual programming

    ReplyDelete
  2. okeh pak eko ane kpn2 mampir ke blog pak eko

    ReplyDelete