Gambar 2.16 Konfigurasi Pin Atmega328P dengan Fungsi Pada Arduino [7] ATmega328 memiliki beberapa mode komunikasi. Salah satu di antaranya adalah
USART. Universal Synchronous dan Asynchronous serial Receiver and Transmitter USART adalah salah satu mode pengiriman dan penerimaan data secara serial. USART
dapat dipakai untuk transfer data antar mikrokontroler dan komputer yang memiliki fitur UART Universal Asynchronus serial Receiver anf Transmitte. Untuk komunikasi dua
arah bi-directional, USART memiliki tiga sambungan, yaitu Rx Receiver, Tx Tramsmitter, dan GND Ground[4].
Setiap pin dapat memberikan atau menerima suatu arus maksimum 40 mA dan mempunyai sebuah resistor pull-up terputus secara default 20-50 KOhm. Hampir semua
AVR memiliki format 16-bit. Setiap alamat memori program terdiri dari instruksi 16-bit atau 32-bit. Terdapat register lain yang terpetakan dengan teknik memory mapped IO
selebar 64 byte. Beberapa register ini digunakan untuk fungsi khusus, antara lain sebagai register kontrol timer counter, Interupsi, ADC, USART, SPI, EEPROM, dan fungsi IO
lainnya. Register – register ini menempati memori pada alamat 0x20h – 0x5Fh[4].
Gambar 2.17 Diagram Blok ATmega328[4]
2.6.1. Fitur
Mikrokontroller ini memiliki beberapa fitur antara lain : 1.
130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock. 2.
32 x 8-bit register serba guna. 3.
Kecepatan mencapai 16 MIPS dengan clock 16 MHz. 4.
32 KB Flash memory dan pada arduino memiliki bootloader yang menggunakan 2 KB dari flash memori sebagai bootloader.
5. Memiliki EEPROM Electrically Erasable Programmable Read Only Memory
sebesar 1KB sebagai tempat penyimpanan data semi permanent karena EEPROM tetap dapat menyimpan data meskipun catu daya dimatikan.
6. Memiliki SRAM Static Random Access Memory sebesar 2KB.
7. Memiliki pin IO digital sebanyak 14 pin 6 diantaranya PWM Pulse Width
Modulation output. 8.
Master Slave SPI Serial interface.
2.6.2. Konfigurasi Pin
a. VCC
Tegangan supplai digital. b.
GND Ground.
c. Port B PB7:0 XTAL1XTAL2TOSC1TOSC2
Port B portB0...portB5 merupakan jalur data 8 bit yang dapat difungsikan sebagai inputoutput. Selain itu port B memiliki fungsi khusus dapat dilihat pada
Tabel 2.5. Tabel 2.5 Fungsi Khusus Port B[13]
Pin Keterangan
PB0 ICP1 berfungsi sebagai timer counter 1 input capture pin PB1 OC1A dapat difungsikan sebagai keluaran PWM Pulse With Modulation
PB2 OC1B dapat difungsikan sebagai keluaran PWM Pulse With Modulation, SS
merupakan jalur komunikasi SPI SPI dan juga berfungsi sebagai jalur pemrograman serial ISP
PB3 OC2A dapat difungsikan sebagai keluaran PWM Pulse With Modulation, MOSI
merupakan jalur komunikasi SPI SPI dan juga berfungsi sebagai jalur pemrograman serial ISP
PB4 MISO merupakan jalur komunikasi SPI dan juga berfungsi sebagai jalur
pemrograman serial ISP
Tabel 2.5 Lanjutan Fungsi Khusus Port B[13]
Pin Keterangan
PB5 SCK merupakan jalur komunikasi SPI dan juga berfungsi sebagai jalur
pemrograman serial ISP, PB6
Pin reset PB7
TOSC2 berfungsi sebagai sumber clock external untuk timer, XTAL2 merupakan sumber clock utama mikrokontroler
d. Port C PC5:0
Port C portC0...portC5 merupakan jalur data 7 bit yang dapat difungsikan sebagai inputouput digital. Tabel 2.6 menunjukan fungsi khusus dari port C.
Tabel 2.6 Fungsi Khusus Port C[13] Pin
Keterangan PC0
ADC0 channel dengan resolusi 10 bit. ADC digunakan untuk mengubah input yang berupa tegangan analog menjadi data digital
PC1 ADC1 channel dengan resolusi 10 bit. ADC digunakan untuk
mengubah input yang berupa tegangan analog menjadi data digital PC2
ADC2 channel dengan resolusi 10 bit. ADC digunakan untuk mengubah input yang berupa tegangan analog menjadi data digital
PC3 ADC3 channel dengan resolusi 10 bit. ADC digunakan untuk
mengubah input yang berupa tegangan analog menjadi data digital PC4
ADC4 channel dengan resolusi 10 bit. ADC digunakan untuk mengubah input yang berupa tegangan analog menjadi data digital
PC5 ADC5 channel dengan resolusi 10 bit. ADC digunakan untuk
mengubah input yang berupa tegangan analog menjadi data digital PC6
ADC6 channel dengan resolusi 10 bit. ADC digunakan untuk mengubah input yang berupa tegangan analog menjadi data digital
Port C 12C merupakan salah satu fitur yang terdapat pada PORTC. I2C
digunakan untuk komunikasi dengan sensor atau device lain yang memiliki komunikasi data tipe I2C seperti sensor kompas
e. PC6RESET
Jika RSTDISBL Fuse diprogram, PC6 digunakan sebagai I O pin. Perhatikan bahwa karakteristik listrik dari PC6 berbeda dari pin lain Port C. Jika RSTDISBL
Fuse adalah tidak dapat diprogram, PC6 digunakan sebagai masukan ulang. Low level pada pin ini selama lebih dari panjang pulsa minimum akan menghasilkan
reset, bahkan jika jam tidak berjalan. f.
Port D PD7:0 Port D portD0...PortD7 merupakan jalur data 8 bit yang masing-masing pin juga
dapat difungsikan sebagai inputoutput. Port C juga memiliki fungsi khusus sebagai berikut :
USART TXD dan RXD merupakan jalur data komunikasi serial dengan level sinyal TTL. Pin TXD berfungsi untuk mengirimkan data serial, sedangkan
RXD kebalikannya yaitu sebagai pin yang berfungsi untuk menerima data serial.
Interrupt INT0 dan INT1 merupakan pin dengan fungsi khusus sebagai interupsi hardware. Interupsi biasanya digunakan sebagai selaan dari program,
misalkan pada
saat program
berjalan kemudian
terjadi interupsi
hardwaresoftware maka program utama akan berhenti dan akan menjalankan program interupsi.
XCK dapat difungsikan sebagai sumber clock external untuk USART, namun kita juga dapat memanfaatkan clock dari CPU, sehingga tidak perlu
membutuhkan external clock. T0 dan T1 berfungsi sebagai masukan counter external untuk timer 1 dan timer
0. AIN0 dan AIN1 keduanya merupakan masukan input untuk analog comparator.
g. AVCC
AVCC adalah pin tegangan suplai untuk Converter A D, PC3: 0, dan ADC7: 6. Perlu eksternal terhubung ke VCC, bahkan jika ADC tidak digunakan. Jika ADC
digunakan, maka harus dihubungkan ke VCC melalui low-pass filter. Perhatikan bahwa PC6 ... 4 menggunakan tegangan suplai digital, VCC.