This Paper A short summary of this paper 36 Full PDFs related to this paper
Kadangkala dalam perancangan sebuah sistem berbasis mikrokontroler, masukan informasi yang akan diolah tidak selamanya dalam bentuk digital, bahkan lebih sering ditemui dalam bentuk analog. Untuk menjembatani antara mikrokontroler dengan dunia analog, maka sinyal informasi yang berbentuk analog tersebut harus terlebih dahulu dikonversi menjadi digital, sehingga mikrokontroler dapat memanipulasi data tersebut. Untuk mengubah sinyal analog tersebut menjadi digital, maka diperlukan perangkat yang dinamakan ADC (Analog to Digital Conversion). Dipasaran sendiri terdiri macam2 ADC mulai dari 8 bit dengan kecepatan konversi yang relatif cukup untuk aplikasi2 dasar seperti pembacaan suhu, sampai dengan ADC yang memiliki kecepatan konversi yang cepat, untuk menuntut sistem yang real time. Dalam mikrokontroler AVR pada varian tertentu, seperti pada ATTiny15, ATMega8535,ATMega128 didalamnya terdapat fasilitas ADC sebesar 10 bit. Dengan ADC ini, maka seorang perancang dapat membuat sistem tanpa melakukan tambahan rangkaian eksternal. Dengan demikian maka, sistem hardware yang akan dirancang akan lebih minimalis, dan juga tentunya menghemat energi. ADC pada mikrokontroler AVR menyatu pada port mikrokontroler, sehingga bila kita ingin memanfaatkan fasilitas ADC, maka kita tidak bisa menggunakan port yang bersangkutan untuk port I/O. Untuk mengaktifkan fasilitas ADC, maka kita harus mengeset register2 yang ada pada ADC. Pada mikrokontroler AVR, referensi untuk tegangan ADC dapat dipilih sesuai dengan yang kita inginkan (dengan tegangan referensi maksimum 5 volt). Dengan referensi yang bisa dipilih ini, maka kita bisa mendapatkan data konversi ADC dengan ketelitian yang tinggi. Berikut gambar untuk memilih tegangan referensi yang diinginkan: Dari gambar kita bisa memilih tegangan referensi yaitu sebesar 2.56 volt yang sudah ada dalam mikrokontroler tersebut atau kita bisa memakai tegangan referensi sesuai keinginan kita melalui pin AREF. Untuk memilih tegangan referensi tersebut, kita mengeset bit REFS1,REFS0 pada register ADLAR. Selain memilih tegangan referensi yang akan dipilih, kita juga bisa memilih pin mana yang akan digunakan sebagai ADC, karena pada mikrokontroler AVR tidak hanya ada 1 pin yang bisa digunakan sebagai ADC. Pada ATMega8535 misalnya, ADC yang tersedia bahkan sampai 8 pin. Untuk jelasnya dapat dilihat pada gambar dibawah: Untuk memilih ADC yang ingin dipilih, maka kita mengeset bit MUX4…MUX0 pada register ADMUX. Selain mengeset register ADMUX, kita juga perlu untuk mengeset register pada ADCSRA. ADEN=ADC enable, 1=mengaktifkan ADC ADSC=ADC Start Conversion, 1= memulai konversi ADFR=ADC free running, memilih mode ADC, 1=mode free running ADIF=ADC interrupt flag, 1 ketika terjadi interupsi pada ADC ADIE= ADC interrupt enable, 1=mengaktifkan interupsi ADC ADPS2..0=ADC prescaller Setelah kita mengeset register2 kendali pada ADC, hasil konversi ADC dapat diambil diregister ADCL dan ADCH (2 register). Berikut contoh potongan program untuk mengeset ADC, dan mengambil data hasil konversi pada single mode. mulaiadc: Idi r16, ObOllOOOOl ; rreferensi dari AVCC, left adj, channel 1 out ADMUX, r16 Idi r16, ObllOOOlll ; enable, start, single conv, prescaier 128 out ADCSRA, r16 tungguselesai: ; tunggu adc tegangan selesai sbic ADCSRA, ADSC rjmp tungguselesai in r17, ADCH ; ambil data, hanya ADCH, abaikan 2 bit LSB cbi ADCSRA, 7 ; matikan ADC, untuk menghemat daya out PORTC, r17 ; tampilkan bit-bit ADCH di LED rcall tunggu ; tunggu sebentar rjmp mulaiadc ; aktifkan ADC lagi tunggu: ; subrutin tunggu Idi r19, $FF tunggulagi: Idi r20, $FF lagi: dec r20 brne lagi dec r19 brne tunggulagi ret
fleksibel dan praktis digunakan terutama pada sistem-sistem yang relatif tidak terlalu kompleks atau tidak memerlukan bahan komputasi yang tinggi. 2.6.1 Konfigurasi Pin ATMega8535 Mikrokontroler ATMega8535 memiliki 40 pin untuk model PDIP ditunjukkan pada Gambar 2.2, dan 44 pin untuk model TQFP dan PLCC. Nama-nama pin pada mikrokontroler ini adalah : 1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya digital. 2. GND merupakan pin ground untuk catu daya digital. 3. Port A (PA0...PA7) merupakan pin I/O 8bit dua arah(bi-directional) dan pin masukan 8 chanel ADC. 4. Port B (PB0 – PB7) merupakan akan pin I/O 8 bit dua arah (bi-directional)dengan resistor pull-up internal dan pin fungsi khusus, yaitu sebagai Timer/Counter, komperator analog dan SPI. 5. Port C (PC0 – PC7) merupakan pin I/O 8bit dua arah (bi-directional)dan pin fungsi khusus, yaitu TWI, komperator analog, input ADC dan Timer Osilator. 6. Port D (PD0 – PD7) merupakan pin I/O 8 bit dua arah(bi-directional) dan pin fungsi khusus, yaitu komperator analog, interupsi eksternal dan komunikasi serial. 7. RESET merupakan pin yang digunakan untuk mereset mikrokontroler. 8. XTAL1 merupakan input ke penguat osilator pembalik dan input ke 22 9. XTAL2 merupakan out put dari penguat oslator pembalik. 10. AVCC merupakan pin masukan tegangan untuk ADC yang terhubung ke portA. 11. AREF merupakan pin tegangan referensi analog ADC. Gambar 2.11 Konfigurasi Pin ATMega8535 2.6.2 Deskripsi pin-pin pada mikrokontroler ATMega8535 : 1. Port A Merupakan 8-bit dua arah bi-directional port I/O,dengan menggunakan resistor pull-up internal dimana setiap pinnya dapat diatur per bit. Output buffer Port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port A (DDRA) harus disetting terlebih dahulu sebelum Port A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, kedelapan pin port A juga digunakan untuk masukan8 channel ADC. 23 2. Port B Merupakan 8-bit dua arah(bi-directional) port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port B dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port B (DDRB) harus disetting terlebih dahulu sebelum Port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang bersesuaian sebagai input, atau diisi 1 jika sebagai output.Selain sebagai port I/O 8 bit port B juga dapat difungsikan secara individu sebagai berikut: 1. PB7: SCK ( SPI Bus Serial Clock) 2. PB6: MISO( SPI Bus Master Input/ Slave Out put) 3. PB5: MOSI( SPI Bus Master Output/Slave Input). 4. PB4: SS (SPI Slave Select Input) 5. PB3: AIN1(Analog Comparator Negatif Input) OC0 (Out put Compare Timer/counter 0) 6. .PB2: AIN0 (Analog Comparator Positif Input) INT2 (External Interrupt 2 Inpt) 7. PB1:T1 (Timer/Counter 1 External Counter Input) 8. PB0:T0 (Timer/Counter 0 External Counter Input) XCK (USART External Clock Input/Output) 3. Port C Merupakan port I/O 8-bit dua arah (bi-directional). Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port C dapat memberi arus 20 mA dan dapat mengendalikan display 24 LED secara langsung. Data Direction Register port C (DDRC) harus disetting terlebih dahulu sebelum Port C digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, Port C juga difungsikan secara individu sebagai berikut: 1. PC7: TOSC2 (Timer Oscillator 2) 2. PC6: TOSC1 (Timer Oscillator 1) 3. PC1: SDA (Serial Data Input/Output) 4. PC0: SCI (Serial Clock) 4. Port D Merupakan Port I/O 8-bit dua arah (bi-directional) . Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port D (DDRD) harus disetting terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin port D juga memiliki untuk fungsi-fungsi alternatif khusus sebagai berikut: 1. PD7: OC2 ( Ouput Compare Timer/Counter 1) 2. PD6: ICP1 ( Timer Counter 1 input capture) 3. PD5: OC1A ( Output Compare A Timer /Counter1) 4. PD4: OC1B ( Output Compare B Timer/Counter 1) 5. PD3: INT1 ( External Interrupt 1 Input) 25 7. PD1: TXD ( USART Transmit) 8. PD0: RXD ( USART Receive) 5. RESET RST pada pin 9 merupakan pin reset yang akan bekerja bira diberi pulsa rendah (aktif Low) selama minimal 1,5us. 6. XTAL2 Merupakan out put dari penguat dari osilator pembalik 7. XTAL1 Merupakan input ke penguat osilator pembalik dan input ke internal clock. 8. AVCC Avcc adalah pin masukan catu daya yang digunakan untuk masukan analog ADC yang terhubung ke Port A. Kaki ini harus secara eksternal terhubung ke Vcc melalui lowpass filter. 9. AREF AREF adalah pin masukan referensi analog untuk ADC. Untuk operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini. 10. AGND AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali jika board memiliki anlaog ground yang terpisah. 26 2.6.3 Peta Memory ATMega8535 Mikrokontroller ATMega8535 memiliki 3 jenis memori yaitu memori program, memori data dan memori EEPROM.Ketigannya memiliki ruang-ruang tersendiri dan terpisah seperti terlihat pada gambar 2.14 Gambar 2.12 Organisasi memori ATMega8535 a. Memori Program ATMega8535 memiliki kapasitas memori program sebesar 8 Kbyte yang terpetakan dari alamat 0000h – 0FFFh dimana masing-masing alamat memiliki lebar data sebesar 16 bit.Sehingga organisasi memori program seperti ini sering dituliskan dengan 4K x 16 bit.Memori program ini juga terbagi menjadi dua yaitu program boot dan juga bagian program aplikasi. b. Memori Data ATMega8535 memiliki kapasitas memori data sebesar 608 byte yang terbagi menjadi 3 bagian yaitu register serba guna,register I/O dan SRAM. 32 byte alamat terendah digunakan untuk register serbaguna yaitu 27 R0 – R31. 64 byte berikut nya digunakan untuk register I/O yang digunakan untuk mengatur fasilitas timer /counter, interrupsi, ADC, USART, SPI, EEPROM dan port I/O seperti Port A, Port B, Port C, dan Port D. Selanjutnya 512 byte diatasnya digunakan untuk memory data SRAM . Jika register-register I/O diatas diakses seperti mengakses data pada memori ( Jika kita menggunakan instruksi LD atau ST ) maka register I/O diatas menempati alamat 0020-005F. Tetapi jika register-register I/O diakses seperti mengakses I/O pada umumnya ( menggunakan instruksi IN/ IOUT) maka register I/O diatas menempati alamat memori 0000h – 003Fh. Gambar 2.13 (a) Register I/O Sebagai Memori Data, (b) Register I/O sebagai I/O c. Memori EEPROM ATMega8535 memiliki memori EEPROM sebesar 512 byte yang terpisah dari memori program maupun dari memori data. Memori EEPROM ini hanaya dapat diakses dengan menggunakan register-register |