Fitur AVR ATMega328 Mikrokontroller

 RAM Random Access Memory RAM digunakan oleh mikrokontroller untuk tempat penyimpanan variabel. Memori ini bersifat volatile yang berarti akan kehilangan semua datanya jika tidak mendapatkan catu daya.  Register Merupakan tempat penyimpanan nilai-nilai yang akan digunakan dalam proses yang telah disediakan oleh mikrokontroller  Special Function Register Merupakan register khusus yang berfungsi untuk mengatur jalannya mikrokontroller. Register ini terletak pada RAM  Input dan Output Pin Pin input adalah bagian yang berfungsi sebagai penerima signal dari luar, pin ini dapat dihubungkan ke berbagi media inputan seperti keypad, sensor dan sebagainya. Pin output adalah bagian yang berfungsi untuk mengeluarkan signal dari hasil proses algoritma mikrokontroller  Interrupt Interrupt bagian dari mikrokontroller yang berfungsi sebagai bagian yang dapat melakukan interupsi, sehingga ketika program utama sedang berjalan, program utama tersebut dapat diinterupsi dan menjalankan program interupsi terlebih dahulu. Beberapa interrup pada umumnya adalah sebagai berikut :  Interrupt Eksternal Interrupt akan terjadi bila ada inputan dari pin interrupt  Interrup timer Interrup akan terjadi bila waktu tertentu telah tercapai  Interrupt serial Interrupt yang terjadi ketika ada penerimaan data dari komunikasi serial

2.4.1 Fitur AVR ATMega328

ATMega328 adalah mikrokontroller keluaran dari Atmel yang mempunyai aristektur RISC Reduce Instruction Set Computing yang dimana setiap proses eksekusi data lebih cepat dari pada arsitektur CISC Complex Instruction Set Computing. Mikrokontroller ini memiliki beberapa fitur antara lain Ginting, 2012:  130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock.  32 x 8-bit register serba guna.  Kecepatan mencapai 16 MIPS dengan clock 16 MHz.  32 KB Flash memory dan pada arduino memiliki bootloader yang menggunakan 2 KB dari flash memory sebagai bootloader.  Memiliki EEPROM Electrically Erasable Programmable Read Only Memory sebesar 1 KB sebagai tempat peyimpanan data semi permanen karena EEPROM tetap dapat menyimpan data meskipun catu daya dimatikan.  Memiliki SRAM Static Random Access Memory sebesar 2 KB.  Memiliki pin IO digital sebanyak 14 pin 6 diantaranya PWM Pulse Width Modulation output.  MasterSlave SPI serial interface. Mikrokontroller Atmega328 memiliki arsitektur Harvard, yaitu memisahkan memori untuk kode program dan memori untuk data sehingga dapat memaksimalkan kerja dan parallelism. Instruksi-instruksi dalam memori program dieksekusi dalam satu alur tunggal, dimana pada saat satu instruksi dikerjakan instruksi berikutnya sudah diambil dari memori program. Konsep inilah yang memungkinkan instruksi- instruksi dapat dieksekusi dalam setiap satu siklus clock. 32 x 8-bit register serba guna digunakan untuk mendukung operasi ALU Arithmatic Logic Unit yang dapat dilakukan dalam satu siklus. 6 dari register serbaguna ini dapat digunakan sebagai 3 buah register pointer 16-bit pada mode pengalamatan tidak langsung untuk mengambil data pada ruang memori data Berlian, et al. 2010. Ketiga register pointer 16-bit ini disebut dengan register X gabungan R26 dan R27, register Y gabungan R28 dan R29, dan register Z gabungan R30 dan R31. Hampir semua instruksi AVR memiliki format 16-bit. Setiap alamat memori program terdiri dari instruksi 16-bit atau 32-bit Ginting, 2012. Selain register serba guna di atas, terdapat register lain yang terpetakan dengan memory mapped IO selebar 64 byte. Beberapa register ini digunakan untuk fungsi khusus antara lain sebagai register control TimerCounter, Interupsi, ADC, USART, SPI, EEPROM, dan fungsi IO lainnya. Register-register ini menempati memori pada alamat 0x20h – 0x5Fh Berlian, et al. 2010. Berikut ini adalah tampilan arsitektur Atmega328 : Gambar 2.4.1 Arsitektur ATMega328 2.4.2 Konfigurasi Pin ATMega328 ATMega328 merupakan mikrokontroller keluarga AVR 8-bit. Beberapa tipe mikrokontroller yang sama dengan ATMega8 ini antara lain ATMega8535, ATMega16, ATMega32, ATMega328, yang membedakan antara mikrokontroller antara lain adalah ukuran memori, banyaknya GPIO pin inputoutput, peripheral USART, timer, counter, dll. Dari segi ukuran fisik, ATMega328 memiliki ukuran fisik lebih kecil dibandingkan dengan beberapa mikrokontroller diatas. ATMega328 memiliki 3 buah PORT utama yaitu PORTB, PORTC dan PORTD dengan total pin inputoutput sebanyak 23 pin. PORT tersebut dapat difungsikan sebagai inputoutput digital atau difungsikan sebagai peripheral lainnya. 1. Port B Port B merupakan jalur data 8-bit yang dapat difungsikan sebagai inputoutput. Selain itu Port B juga dapat memiliki fungsi alternatif seperti dibawah ini : a. ICP1 PB0, berfungsi sebagai Timer Counter 1 input capture pin. b. OC1A PB1, OC1B PB2 dan OC2A PB3 dapat difungsikan sebagai keluaran PWM Pulse width Modulation. c. MOSI PB3, MISO PB4, SCK PB5, SS PB2 merupakan jalur komunikasi SPI. d. TOSC1 PB6 dan TOSC2 PB7 dapat difungsikan sebagai sumber clock eksternal untuk timer. e. XTAL1 PB6 dan XTAL2 PB7 merupakan sumber clock utama mikrokontroller. 2. Port C Port C merupakan jalur data 7-bit yang dapat difungsikan sebagai inputoutput digital. Fungsi alternatif Port C antara lain sebagai berikut : a. ADC6 channel PC0, PC1, PC2, PC3, PC4, PC5 dengan resolusi 10-bit. ADC dapat digunakan untuk mengubah input yang berupa tegangan analog menjadi data digital. b. I2C SDA dan SDL merupakan salah satu fitur yang terdapat pada Port C. I2C digunakan untuk komunikasi dengan sensor atau device lain yang memiliki komunikasi data tipe I2C seperti sensor kompas, accelerometer nunchuck. 3. Port D Port D merupakan jalur data 8-bit yang masing-masing pin-nya dapat difungsikan sebagai inputoutput. Fungsi alternatif lainnya sebagai berikut : a. USART TXD dan RXD merupakan jalur data komunikasi serial dengan level sinyal TTL. Pin TXD berfungsi untuk mengirimkan data serial, sedangkan RXD yaitu sebagai pin yang berfungsi untuk menerima data serial. b. Interrupt INT0 dan INT1 merupakan pin dengan fungsi khusus sebgai interupsi hardware. Interupsi biasanya digunakan sebagai selaan dari program, misal pada saat program berjalan kemudian terjadi interupsi hardwaresoftware maka program utama akan berhenti dan menjalankan program interupsi. c. XCK dapat difungsikan sebagai sumber clock eksternal untuk USART, namun dapat juga memanfaatkan clock dari CPU, sehingga tidak perlu membutuhkan eksternal clock. d. T0 dan T1 berfungsi sebagai masukan counter eksternal untuk timer 1 dan timer 0. e. AIN0 dan AIN1 keduanya merupakan masukan input untuk analog comparator. Gambar 2.4.2 Konfigurasi Pin ATMega328 2.5 Protokol Komunikasi I2C Mengatasi terbatasnya jumlah kaki IC prosesor, beberapa perusahaan IC mengembangkan teknik transfer data secara seri untuk menghubungkan IC prosesor ke IC pendukungnya, transfer data secara seri antar IC ini tidak ada hubungannya dengan transfer data seri yang biasa dipakai untuk modem. Sebuah IC memori dengan kapasitas 2 KB yang dibentuk dengan teknik transfer data secara parallel paling tidak mempunyai 24 kaki, yaitu :  8 kaki untuk jalur data  11 kaki untuk jalur penomoran memori jalur alamat  3 kaki untuk jalur control  2 kaki untuk catu daya Teknik transfer data secara seri antar IC dikembangkan oleh 3 perusahaan IC, yang pertama adalah teknik I2C Inter Integrated Circuit yang dikenalkan oleh Philips, teknik SPI Serial Peripheral Interface dari Motorala dan teknik MicroWire ciptaan National Semikonductor. Teknik I2C memakai 2 jalur untuk keperluan transfer data secara seri, sedangkan SPI dan MicroWire memakai 3 jalur. Semua teknik mempunyai 1 jalur untuk Clock, I2C hanya punya satu jalur data 2 arah, sedangkan SPI dan MicroWire mempunyai 2 jalur data satu arah, masing-masing untuk jalur data masuk dan jalur data keluar. I2C merupakan bus standar yang didesain oleh Philips pada awal tahun 1980an untuk memudahkan komunikasi antar komponen yang tersebar pada papan rangkaian. Pada awalnya, kecepatan komunikasi maksimumnya diset pada 100kbps karena pada awalnya kecepatan tinggi blum dibutuhkan pada transmisi data. Untuk yang membutuhkan kecepatan tinggi, ada mode 400kbps dan sejak 1998 ada mode kecepatan tinggi 3,4 Mbps. I2C tidak hanya digunakan pada komponen yang terletak pada satu board, tetapi juga digunakan untuk mengkoneksikan komponen yang dihubungkan melalui kabel Prima, 2011. Kesederhanaan dan fleksibilitas merupakan ciri utama dari I2C, kedua hal tersebut membuat bus ini mampu menarik penggunaannya dalam berbagai aplikasi. Fitur-fitru signifikan dari bus ini adalah Prima, 2011. :  Hanya 2 jalurkabel yang dibutuhkan.  Tidak ada aturan baud rate yang ketat seperti RS232, dibus ini IC yang berperan sebagai master akan mengeluarkan bus clock.  Hubungan masterslave berlaku antara komponen satu dengan yang lain, setiap perangkat yang terhubung dengan bus mempunyai alamat unik yang diset melalui software.  IC yang berperan sebgai master mengontrol seluruh jalur komunikasi dengan mengatur clock dan menentukan siapa yang menggunakan jalur komunikasi. Jadi IC ang berperan sebagai slave tidak akan mengirim data kalau tidak diperintah oleh master.  I2C merupakan bus yang mendukung multi-master yang mempunyai kemampuan arbritasi dan pendeteksi tabrakan data. Secara fisik sistem bus I2C terdiri dari 2 buah kawat aktif dan jalur catu daya serta ground. Dua buah kawat aktif yaitu SDA yang merupakan kepanjangan dari Serial Data dan SCL yang merupakan kepanjangan Serial Clock merupakan jalur kawat dua arah bidirectional. Dalam konsep komunikasi bus I2C hanya dibutuhkan enam operasi dasar sederhana untuk mentransmisikan dan menerima informasi. Keenam kode operasi itu adalah sebagai berikut : 1. Sebuah bit start. 2. Suatu alamat slave 7-bit. 3. Suatu bit readwrite yang akan menentukan apakah slave akan berfungsi sebagai transmitter atau receiver. 4. Suatu bit pemberitahuan knowledge. 5. Bit pesan yang dibagi ke dalam segmen 8-bit. 6. Suatu bit stop. Keuntungan yang didapat dengan menggunakan I2C antara lain : 1. Meminimalkan jalur hubungan antar IC. 2. Menghemat luasan PCB yang dibutuhkan . 3. Membuat sistem yang didesian berorientasi softwaremudah diekspan dan diupgrade. 4. Membuat sistem yang didesain menjadi standart, sehingga dapat dihubungkan dengan sistem lain yang juga menggunakan I2C bus.

2.6 Sensor Arus