Komunikasi USB USB Host Shield

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.