Beruflich Dokumente
Kultur Dokumente
Atmega 8535
1. Mikrokontroler ATMega8535
ATMega8535 adalah mikrokontroler CMOS 8 bit daya rendah berbasis arsitektur RISC.
Instruksi dikerjakan pada satu siklus clock, ATMega8535 mempunyai throughput mendekati
1 MIPS per MHz, hal ini membuat ATMega8535 dapat bekerja dengan kecepatan tinggi
walaupun dengan penggunaan daya rendah. Mikrokontroler ATmega8535 memiliki beberapa
fitur atau spesifikasi yang menjadikannya sebuah solusi pengendali yang efektif untuk
berbagai keperluan. Fitur-fitur tersebut antara lain:
2. Fitur ATmega8535
1
Mikrokontroler AVR ATMega 8535 merupakan salah satu mikrokontroler
keluarga AVR ATMega berbasis RISC produksi dari ATMEL. Mikrokontroler
AVR merupakan mikrokontroler berbasis arsitektur RISC (Reduced Instruction Set Computing)
8 bit. Berbeda dengan mikrokontroler keluarga 8051 yang mempunyai arsitektur CISC
(Complex Instruction Set Computing), AVR menjalankan sebuah instruksi tunggal dalam satu
siklus dan memiliki struktur I/O yang cukup lengkap sehingga penggunaan komponen
eksternal dapat dikurangi. Mikrokontroler AVR didesain menggunakan arsitektur Harvard, di
mana ruang dan jalur bus bagi memori program dipisahkan dengan memori data. Memori
program diakses dengan single-level pipelining, di mana ketika sebuah instruksi dijalankan,
instruksi lain berikutnya akan di-prefetch dari memori program.
Fitur-Fitur ATMega8535
1) Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MH
2) Kapabilitas memori flash 8 KB, SRAM sebesar 512 byte, dan EEPROM (Electrically
Erasable Programmable read Only Memory) sebesar 512 byte.
3) ADC internal dengan fidelitas 10 bit sebanyak 8 channel.
2
4) Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps.
5) Enam pilihan mode sleep menghemat penggunaan daya listrik.
6) Berperformen tinggi dan dengan konsumsi daya rendah (low power)
Fitur Peripheral
Dua Timer/Counter 8-bit dengan Separate Prescaler (sumber clock yang dapat
diatur) dan Mode pembanding
Satu Timer/Counter 16-bit dengan Separate Prescaler, Mode pembanding dan
Capture Mode
Real Time Counter dengan sumber osilator terpisah
Terdapat delapan saluran ADC dengan resolusi sepuluh bit ADC
Empat saluran Pulse Width Modulation (PWM)
Terdapat Two Serial Interface
Programmable serial USART
Master/Serial SPI Serial Interface
Programmable Watchdog Timer dengan On-Chip Oscillator
On-Chip Analog Comparator
8. I/O dan kemasan
32 programmable saluran I/O
40 pin PDIP, 44 pin TQFP, 44 PIN PLCC dan 44 pin MLF
9. Tegangan Kerja
2,7 – 5,5V untuk ATmega8535L
4,5 – 5,5V untuk ATmega8535
10. Kelas Kecepatan
0 – 8 Mhz untuk ATmega8535L
0 – 16 Mhz untuk ATmega8535
a) VCC merupakan pin yang berfungsi sebagai pin masukan catu daya.
b) GND merupakan pin ground.
c) Port A (PA0..PA7) merupakan pin I/O dua arah dan pin masukan ADC.
d) Port B (PB0..PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
Timer/Counter, komparator analog dan SPI.
e) Port C (PC0..PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI,
komparator analog dan Timer Oscilator.
f) Port D (PD0..PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
komparator analog, interupsi eksternal dan komunikasi serial.
g) RESET merupakan pin yang digunakan untuk me-reset mikrokontroler.
h) XTAL1 dan XTAL2 merupakan pin masukan clock eksternal.
i) AVCC merupakan pin masukan tegangan untuk ADC.
j) AREF merupakan pin masukan tegangan referensi ADC.
3
Gambar Konfirgurasi Pin ATMEGA 8535
Berikut ini adalah penjelasan dari pin mikrokontroler ATMega8535 menurut port-nya
masing-masing:
1. Port A
Pin33 sampai dengan pin 40 merupakan pin dari port A. Merupakan 8 bit directional
port I/O. Setiap pin-nya dapat menyediakan internal pull-up resistor (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
di-setting terlebih dahulu sebelum port A digunakan. Bit-bit DDRA diisi 0 jika ingin
memfungsikan pin-pin port A yang disesuaikan sebagai input, atau diisi 1 jika sebagai output.
Selain itu, pin-pin pada port A juga memiliki fungsi-fungsi alternatif khusus seperti yang
dapat dilihat dalam tabel:
Tabel Penjelasan pin pada port A
Pin Keterangan
4
PA.2 ADC2 (ADC Input Channel 2)
Pin Keterangan
5
Pin Keterangan
Pin 14 sampai dengan pin 20 merupakan pin dari port D. Merupakan 8 bit directional
port I/O. Setiap pin-nya 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 di-setting terlebih dahulu sebelum port D digunakan. Bit-bit DDRD diisi 0 jika ingin
memfungsikan pin-pin port D yang disesuaikan sebagai input, atau diisi 1 jika sebagai output.
Selain itu, pin-pin port D juga memiliki fungsi-fungsi alternatif khusus seperti yang dapat
dilihat dalam tabel:
Tabel Penjelasan pin pada port D
Pin Keterangan
Pin-out ATmega8535
6
tabel dibawah. Alamat memori berikutnya digunakan untuk SRAM 512 byte, yaitu pada lokasi
$60 sampai dengan $25F.
Memori program yang terletak pada Flash Perom tersusun dalam word atau 2 byte karena setiap
instruksi memiliki lebar 16-bit atau 32bit. AVR ATmega8535 memiliki 4KByte x 16 Bit Flash
Perom dengan alamat mulai dari $000 sampai $FFF. AVR tersebut memiliki 12 bit Program
Counter (PC) sehingga mampu mengalamati isi Flash.
Selain itu AVR ATmega8535 juga memilki memori data berupa EEPROM 8-bit sebanyak 512
byte. Alamat EEPROM dimulai dari $000 sampai $1FF.
7
Status Register
Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan
ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU mikrokontroler.
8
Bab 2
Mikrokontroler MCS-51
9
aplikasi khusus. Seiring perkembangan mikroprosesor, mikrokontroler juga mengalami
perkembangan pesat seperti turunan MCS-51, 68HC11, mikrokontroler PIC, Fujitsu dan
sebagainya.
Pada awal perkembangannya, mikroprosesor dibuat menurut kebutuhan aplikasi yang lebih
spesifik, dalam hal ini mikroprosesor dibagi menjadi beberapa jenis, yaitu :
Mikroprosesor RISC (Reduced Instruction Set of Computing) dan CISC (Complex
Instruction Set of Computing). Jenis ini yang digunakan untuk pengolahan informasi
dengan perangkat lunak yang rumit dan digunakan untuk kebanyakan PC (Personal
Computer) saat ini.
Pengolah Sinyal Digital, DSP (Digital Signal Processor). Memiliki perangkat lunak
dan perangkat keras yang ditujukan untuk mempermudah proses pengolahan sinyal-
sinyal digital. DSP digunakan pada perangkat audio dan video modern seperti VCD,
DVD, home theatre dan juga pada kartu-kartu multimedia di komputer.
Mikrokontroler, adalah mikroprosesor yang dikhususkan untuk instrumentasi dan
kendali. Contoh penggunaannya adalah sebagai pengendali motor, berperan seperti
PLC (Programmable Logic Controller), pengaturan pengapian dan injeksi bahan bakar
pada kendaraan bermotor atau alat pengukur otomatis suatu besaran seperti suhu,
tekanan, kelembaban dan lain-lain.
Dalam perkembangan yang begitu cepat, batasan-batasan tersebut menjadi kabur, seperti
definisi mini, mikro dan mainframe komputer. Beberapa mikrokontroler disebut embedded
processor, atau embedded processor adalah mikrokontroler, artinya prosesor yang diberikan
program khusus yang selanjutnya diaplikasikan untuk akuisisi data dan kendali khusus, juga
bisa diprogram ulang. Beberapa mikrokontroler modern juga sudah dilengkapi dengan DSP
atau terdapat pula mikrokontroler yang tergolong RISC seperti mikrokontroler AVR (Alf and
Vegard’s Risc processor).
Mikrokontroler adalah suatu chip yang dibuat dengan ciri khasnya, umumnya adalah :
Memiliki memori yang relatif sedikit. Penggunaan mikrokontroler untuk keperluan
instrumentasi khusus membuatnya tidak efisien jika menggunakan memori yang besar
namun tidak terpakai.
Memiliki unit I/O langsung. Berbeda dengan mikrokomputer yang unit I/O-nya dapat
dikonfigurasi lebih lanjut, mikrokontroler mempunyai unit I/O yang terintegrasi dan
berhubungan langsung dengan mikroprosesornya.
Program atau perangkat lunaknya relatif sederhana. Sesuai fungsi yang dibuat untuk
tujuan khusus, mikrokontroler hanya membutuhkan program yang sederhana untuk
menjalankan fungsinya.
Pemroses bit, ketimbang byte. Dengan memori yang sedikit dan implementasi
perangkat lunak yang sederhana, mikrokontroler lebih cenderung digunakan untuk
memproses bit (binary digit) dibandingkan byte (8 bit), untuk kemudian setiap bit
disalurkan ke setiap jalur keluaran I/O pada pin-pin yang dimilikinya.
Beberapa varian memiliki memori yang tidak hilang bila catu padam didalamnya
untuk menyimpan program.
Sedangkan dalam hal aplikasi, sistem mikrokontroler memiliki karakteristik sebagai berikut :
10
Memiliki program khusus yang disimpan dalam memori untuk aplikasi tertentu, tidak
seperti PC yang multifungsi karena mudahnya memasukkan program. Program
mikrokontroler relatif lebih kecil daripada program-program pada PC.
Konsumsi daya kecil.
Rangkaian sederhana dan kompak.
Murah, karena komponen yang digunakan sedikit.
Unit I/O yang sederhana, misalnya keypad, LCD, LED, latch.
Lebih tahan terhadap kondisi lingkungan ekstrim misalnya temperatur, tekanan,
kelembaban dan sebagainya.
Intel 8048 adalah SCM yang pertama, dipasarkan pada tahun 1976, ini merupakan cikal bakal
dari mikrokontroler. Keluarga dari 8048 adalah 8021, 8022, 8048, dan 8049 yang hingga saat
ini masih digunakan pada alat-alat kedokteran modern dan digunakan pada keyboard IBM PC
untuk scanning tombol-tombolnya. Versi 8748 memiliki EPROM 1 kByte untuk menyimpan
programnya. Keluarga mikrokontroler pertama ini dikenal dengan nama MCS-48. Generasi
kedua mikrokontroler 8 bit adalah keluarga mikrokontroler 8051 di tahun 1980, dengan nama
MCS-51 dan diklaim sebagai standar mikrokontroler untuk industri yang menguasai lebih
dari 60% pasar mikrokontroler dan menjadi inti bagi terciptanya mikrokontroler produk
lainnya. Generasi ketiga adalah mikrokontroler 16 bit, seri MCS-96 yang dapat melakukan
operasi 16 bit serta penambahan kemampuan dan kecepatan proses yang ditingkatkan. Kini
jutaan chip telah digunakan di seluruh dunia untuk pengendalian proses-proses dan
instrumentasi.
1. Arsitektur MCS-51
11
Dasar dari IC MCS-51 adalah mikrokontroler 8051 yang mempunyai spesifikasi sebagai
berikut :
ROM 4K byt
RAM 128 byte
4 buah I/O (Input/Output) port 8-bit
2 buah timer 16 bit
Interface serial
64K pengalamatan code (program) memori
64K pengalamatan data memori
Prosesor Boolean (satu bit – satu bit)
210 lokasi bit-addressable
4 µs operasi pengalian/pembagian.
Flash-adl suatu jenis rom yang biasanya di isi dengan program hasil buatan
yang harus dijalankan mikrokontroler
Eeprom-adl rom untuk menyimpan data secara permanen oleh program
yang sedang runing
Pin i/o-kaki untuk jalur in/out sinyal sebagai hasil keluaran ataupun
masukan bagi program.
Timer-modul hardware yang bekerja untuk menghitung waktu/pulsa.
UART (Universal Asynchronous Receiver Transmitter) adalah jalur
komunikasi data khusus asinkron/adapter serial port adapter untuk
komunikasi serial asinkron.
USART (Universal Synchronous/Asynchronous Receiver
Transmitter)merupakan adapter serial port untuk komunikasi serial sinkron
dan asinkron.Komunikasi serial sinkron tidak memerlukan start/stop bit dan
dapat beroperasi pada click yang lebih tinggi dibanding asinkron.
SPI (serial peripheral interface) merupakan port komunikasi serial sinkron.
12
SCI (serial communications interface) merupakan enhanced UART
(asynchronous
serial port)
isp-keamanan khusus mikrikontroler untuk dapat di program langsung
dalam sistem.
Dalam 89s51/52 terdapat 32 jalur port yang dikelompokan dalam 4 buah
port yang masing terdiri dari 8 bit
13
(reset) adalah masukan reset (aktif tinggi/high). Logika high selama 2 siklus mesin akan
mereset MCU.
14
Software
Organisasi Memori
Kumpulan Register
Instruksi
Hardware
Pin-out
Timing characteristics
Current / Voltage requirements
Organisasi Memori
8051 memiliki beberapa alamat terpisah untuk penyimpanan program dan data.
Penyimpanan Program
Setelah reset, MCS-51 mulai mengutip instuksi dari 0000H. Dapat diambil dari memori
eksternal maupun internal.
Penyimpanan Data
8051 memiliki 256 byte RAM internal.
15
128 byte atas digunakan untuk Special Function Registers (SFR).
Menyimpan registers,
Stack
Dan fitur lainnya
32 byte paling bawah membentuk 4 bank dari dengan isi 8 register tiap bank.
Hanya salah satu bank yang dapat aktif
Bank yang aktif dapat dipilih dengan mengatur 2 bit di PSW. [[Default bank (ketika
dinyalakan) adalah bank 0 (lokasi 00 – 07)]].
Ke 8 register pada tiap bank dinamakan R0 hingga R7
Tiap register ini memiliki alamat dan dapat diakses langsung dengan menggunakan
alamtnya tersebut, meskipun bank yang bersangkutan tidak diaktifkan.
16
16 byte selanjutnya – lokasi 20H hingga 2FH – membentuk blok yang dapat dialamati
17
RAM –128 Byte Pertama
RAM 128 byte atas digunakan untuk tempat special function register. Hanya sekitar 25
byte yang digunakan. Sisanya dicadangkan untuk versi pengembangan 8051.
Register-register ini berhubungan dengan fungsi yang penting dalam kerja MCS-51.
Beberapa SFR bersifat bit-addressable juga byte-addressable. Alamat bit 0 suatu
register sama dengan alamat register yang bersangkutan.
18
Lokasi SFR
ACC – Akumulator
Umumnya digunakan untuk penyalinan dan instruksi aritmatika dan dapat ditulis dengan
beberapa cara:
Disamping itu, juga bersifat bit addressable dimana ACC.2 berarti bit 2 register ACC.
Register B
19
2 8-bit registers that can be combined into a 16-bit DPTR – Data Pointer.
Used by commands that access external memory
Also used for storing 16bit values
mov DPTR, #data16 ; setup DPTR with 16bit ext address
movx A, @DPTR ; copy mem[DPTR] to A
Can be accessed as 2 separate 8-bit registers if needed.
DPTR is useful for string operations and look up table (LUT) operations.
The SP Register
Register PSW
Program Status Word: bersifat “bit addressable” register 8-bit Menyimpan seluruh flag.
Port Latch.
Memberikan nilai yang dikeluarkan pada port tertentu atau nilai yang dibaca dari port
input tertentu.
20
Bersifat bit addressable. Alamat bit pertama juga merupakan alamat register yang
bersangkutan. Contoh: alamat P1 adalah 90H, sehingga P1.7 atau 97H merupakan bit
yang sama.
Register SBUF
Byte tinggi dan rendah register cacah 16-bit untuk timer/counter T0.
Terdapat pasangan TH1 / TL1 untuk timer T1.
Register Kontrol
IP – Interrupt Priority.
IE – Interrupt Enable.
Over View
Manajemen Memori
21
Pengalamatan Memori
22
Tabel SFR
23
Bab 3
Mikrokontroler ATmega 15
Kelebihan ATMEGA16
Mikrokontroler AVR 8 bit yang memiliki kemampuan tinggi dengan konsumsi daya
rendah
Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16MH
Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, Port, D.
CPU yang terdiri dari 32 buah register
Unit interupsi dan eksternal
Port USART untuk kemunikasi serial
Fitur peripheral
Tiga buah Timer/Counter dengan kemampuan perbandingan (compare)
Dua buah Timer/Counter 8 bit dengan Prescaler terpisah dan Mode
Compare
Satu buah Timer/Counter 16 bit dengan Prescaler terpisah, Mode
Compare dan Mode Capture
Real Time Counter dengan Oscillator tersendiri
Empat kanal PWM
8 kanal ADC
8 Single-ended Channel dengan keluaran hasil konversi 8 dan 10
resolusi (register ADCH dan ADCL)
24
7 Differrential Channel hanya pada kemasan Thin Quad Flat Pack
(TQFP)
2 Differential Channel dengan Programmable Gain
Antarmuka Serial Peripheral Interface (SPI) Bus
Watchdog Timer dengan Oscillator internal
1. Arsitektur ATMega16
Mikrokontroler ini menggunakan arsitektur Harvard yang memisahkan
memori program dari memori data, baik bus alamat maupun bus data,
sehingga pengaksesan program dan data dapat dilakukan secara bersamaan
(concurrent), adapun blog diagram arsitektur ATMega16. Secara garis besar
mikrokontroler ATMega16 terdiri dari :
Fitur Peripheral :
Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode compare
Satu buah 16-bit timer/counter dengan prescaler terpisah, mode compare, dan mode
capture
Real time counter dengan osilator tersendiri
Empat kanal PWM dan Antarmuka komparator analog
8 kanal, 10 bit ADC
Byte-oriented Two-wire Serial Interface
Watchdog timer dengan osilator internal
25
Konfirgurasi Pin ATMEGA 16
Atmega 16 memepunyai kaki standart 40 pin PID yang mempunyai fungsi sendiri-
sendiri. Untuk lebih jelas tentang konigurasi Pin Atmega 16 bisa di lihat pada gambar berikut.
26
Gambar di atas merupakan susunan kaki standar 40 pin mikrokontroler AVR
Atmega16. Berikut penjelasan umum susunan kaki Atmega16 tersebut:
VCC merupakan pin masukan positif catudaya. Setiap peralatan elektronika digital
tentunya butuh sumber catu daya yang umumnya sebesar 5 V, itulah sebabnya di PCB
kit rangkaian mikrokontroler selalu dipasang IC regulator 7805.
GND sebagai PIN ground.
Port A (PA0 ... PA7) merupakan pin I/O dua arah dan dapat diprogram sebagai pin
masukan ADC.
Port B (PB0 ... PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
Timer/Counter, Komparator Analog, dan SPI.
Port C (PC0 ... PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI,
komparator analog, dan Timer Oscilator.
Port D (PD0 ... PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
komparator analog, interupsi eksternal, dan komunikasi serial.
Reset merupakan pin yang digunakan untuk me-reset mikrokontroler ke kondisi
semula.
XTAL 1 dan XTAL 2 sebagai pin masukan clock eksternal. Suatu mikrokontroler
membutuhkan sumber detak (clock) agar dapat mengeksekusi intruksi yang ada di
memori. Semakin tinggi nilai kristalnya, maka semakin cepat pula mikrokontroler
tersebut dalam mengeksekusi program.
AVCC sebagai pin masukan tegangan untuk ADC.
AREF sebagai pin masukan tegangan referensi.
27
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. Untuk lebih jelasnya, dapat dilihat pada gambar berikut.
28
Peta Memori
AVR ATMega16 memiliki ruang pengalamatan memori data dan memori program yang
terpisah. Memori data terbagi menjadi 3 bagian, yaitu 32 buah register umum, 64 buah
register I/O, dan 1kb SRAM internal.
Register keperluan umum menempati space data pada alamat terbawah, yaitu $00 sampai
$1F. Sementara itu, register khusus untuk menangani I/O dan kontrol terhadap
mikrokontroler menempati 64 alamat berikutnya, yaitu mulai dari $20 hingga $5F. Register
tersebut merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai
peripheral mikrokontroler,
seperti kontrol register, timer/counter, fungsi – fungsi I/O, dan sebagainya. Alamat memori
berikutnya yang digunakan untuk SRAM 1kb, yaitu pada lokasi $60 sampai dengan $45F.
Konfigurasi memori data ditunjukan pada gambar berikut.
29
Mikrokontroler disini digunakan sebagai komunikasi antara computer dengan Plant,
dimana digunakan komunikasi serial RS232 sebagai komunikasi antara Mikrokontroler
dengan Komputer. (Wardhana.L ,2006).
PWM atau modulasi lebar pulsa adalah salah satu keunggulan dari Timer/Counter yang
terdapat pada ATMega16. Ketiga jenis Timer/Counter pada ATMega32 dapat menghasilkan
pulsa PWM. Pulsa PWM adalah sederetan pulsa yang lebar pulsanya dapat diatur. Pulsa
PWM berfungsi mengatur kecepatan motor DC, mengatur gelap terang LED dan lain
sebagainya.
30
TCCR0. Tabel Konfigurasi Bit WGM01 dan WGM00 dapat dilihat pada tabel berikut.
Sebagai penggunaan mode PWM Timer / Counter 0, keluaran sinyal PWM terletak pada
pin OC0 sehingga pada contoh ini LED diletakkan pada pin OC0. Ketika nilai TCNT0 sama
dengan nilai pada OCR0, maka output pada OC0 akan berlogika nol atau berlogika satu,
tergantung pada pemilihan mode PWM. Anda dapat memilih mode normal atau mode
inverted PWM. Pemilihan mode PWM diseting melalui bit COM01 dan bit COM00 pada
register TCCR0 yang konfigurasinya seperti tabel berikut.
Tabel Konfigurasi Bit COM01 dan COM00 Compare Output Mode Phase Correct PWM
Dari tabel diatas dapat diketahui saat COM00 clear dan COM01 set, pin OC0 clear saat
timer mencacah diatas Compare Match dan pin OC0 set saat timer mencacah dibawah
Compare Match atau non-inverting PWM. Kebalikannya, saat COM00 set dan COM01 juga
set, maka pin OC0 set saat timer mencacah diatas Compare Match dan pin OC0 clear saat
mencacah dibawah Compare Match atau disebut juga inverting PWM. Untuk lebih jelasnya,
perhatikan gambar berikut.
31
Didalam mikrokontroler Atmega16 terdiri dari:
Saluran I/O ada 32 buah, yaitu Port A, Port B, Port C, dan Port D.
ADC (Analog to Digital Converter) 10 bit sebanyak 8 channel.
Tiga buah Timer/Counter dengan kemampuan perbandingan.
CPU yang terdiri dari 32 register.
131 intruksi andal yang umumnya hanya membutuhkan 1 siklus clock.
Watchdog Timer dengan oscilator internal.
Dua buah Timer/Counter 8 bit.
Satu buah Timer /Counter 16 bit.
Tagangan operasi 2.7 V - 5.5 V pada Atmega16.
Internal SRAM sebesar 1KB.
Memory Flash sebesar 16KB dengan kemampuan Read While Write.
Unit interupsi internal dan eksternal.
Port antarmuka SPI.
EEPROM sebesar 512 byte dapat diprogram saat operasi.
Antar muka komparator analog.
4 channel PWM.
32x8 general purpose register.
Hampir mencapai 16 MIPS pada Kristal 16 MHz.
Port USART programmable untuk komunikasi serial.
32
Bab 4
Mikrokontroler Atmega 32
Microcontroller AVR (Alf and Vegard’s Risc processor) standar memiliki arsitektur
8bit, dimana semua instruksi dikemas dalam kode 16-bit, dan sebagian besar instruksi
dieksekusi dalam 1 (satu) siklus clock. AVR berteknologi RISC (Reduced Instruction Set
Computing). AVR dapat dikelompokkan menjadi empat kelas, yaitu keluarga ATtiny,
keluarga ATSOSxx, keluarga ATmega, dan AT86RFxx. Pada dasarnya, yang membedakan
masing-masing kelas adalah memori, anda dapat mencoba ATmega8 atau ATtiny2313
dengan ukuran Flash Memory 2KB dengan dua input analog. Berikut adalah fitur yang
terdapat pada microcontroller ATmega32 yaitu:
Saluran I/O ada 32 buah, yaitu Port A, Port B, Port C, dan Port D.
ADC (Analog to Digital Converter) 10 bit sebanyak 8 channel.
Tiga buah Timer/Counter.
CPU yang terdiri dari 32 buah register.
Memiliki 131 instruksi yang membutuhkan 1 siklus clock.
Watchdog timer dengan osilator internal.
Dua buah timer/counter 8 bit, satu buah timer/counter 16 bit
Tegangan operasi 2.7 V – 5.5 V pada ATmega 16L.
Internal SRAM sebesar 1 KB.
Memori flash sebesar 32KB dengan kemampuan Read While Write.
Unit interupsi internal dan external.
Port antarmuka SPI.
EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
Antarmuka komparator analog.
4 channel PWM.
32x8 general purpose register.
Hampir mencapai 16 MIPS pada Kristal 16 MHz.
Port USART yang dapat diprogram untuk komunikasi serial.
33
Berikut kelebihan yang dimiliki ATmega32 (Aozon mengambil referensi langsung dari
Atmel termasuk datasheet yang diterbitkannya):
Mikrokontroler AVR memiliki daya tahan data (retensi data) 20 tahun ketika suhu
Mikrokontroler AVR memiliki fitur tambahan yang sangat membantu kita untuk
melakukan penelitian yang lebih baik, seperti terdapat ADC, PWM dan Timer.
Mikrokontroler ini memiliki fitur menarik yang patut dicoba seperti 5 mode Sleep,
mengontrol lebih banyak device/ perangkat, seperti Tombol/ switch, LED, buzzer dan
LCD.
34
ATmega32 memiliki operasi tegangan dari 2,7 Volt sampai 5,5 Volt. Ini sangat
membantu kita untuk menghemat listrik. Kecepatan maksimal bisa mencapai 16 MHz
(tanpa overclock).
ATmega32 membutuhkan arus yang sangat kecil dibanding komponen analog yang
biasa kita pakai. Hal ini dibuktikan dengan konsumsi daya yang dibutuhkan ketika aktif
saja hanya 1,1 mA, bahkan bisa mencapai 1 uA ketika mode power-down.
1. Arsitektur ATMEGA 32
35
ATmega32 memiliki clock generator internal sehingga mikrokontroler ini
dapat bekerja langsung tanpa menggunakan clock eksternal. Sinyal clock internal yang
dibangkitkan sebesar 1 MHZ. Jadi, cukup dengan menghubungkan Vcc dan Gnd dengan
tegangan 5V DC mikrokontroler ini dapat bekerja.
Untuk membuat program untuk ATmega32 dapat digunakan WinAVR atau
AVR Studio yang dapat diperoleh secara gratis (freeware). Namun dalam pembahasa. ini
software yang digunakan adalah WinAVR. Program dibuat dalam bahasa C dan
menambahkan file header untuk ATmega32 yang berisi register-register pada ATmega32.
Setelah program di-compile akan menghasilkan file dengan tipe Intel hex (.hex). File inilah
yang nantinya akan di-programkan ke ATmega32 melalui interface bsd programmer
(Brian Dean's Programmer) yang terhubung ke komputer melalui port paralel. Koneksi
antara ATmega32 dan port paralel untuk bsd programmer diberikan oleh tabel di
bawah
36
Asynchronous terus berjalan, yang memungkinkan pengguna untuk mempertahankan basis
waktu sementara sisa perangkat tidur ADC.
Fungsi umum dari susunan pin microcontroller ATmega32 adalah sebagai berikut:
Port A (PAO..PA7) merupakan pin I/O dua arah dan dapat diprogram sebagai pin dari
ADC.
Port B (PBO..PB7) merupakan pin I/O dua arah dan fungsinya sebagai, timer/counter,
37
Port C (PCO..PC7) merupakan pin I/O dua arah dan fungsinya sebagai, TWI,
Port D (PDO..PD7) merupakan pin I/O dua arah dan fungsinya sebagai, komparator
XTAL 1 dan XTAL 2 sebagai pin clock eksternal. Pada microcontroller membutuhkan
sumber (clock) agar dapat mengeksekusi instruksi yang ada di memori. Semakin tinggi
38
Bab 5
Mikrontroler Atmge 64
39
AVR ATmega64 didukung dengan rangkaian lengkap alat pengembangan
program dan sistem termasuk: kompiler C, perakit makro, debugger / simulator
program, In-Circuit Emulators, dan kit evaluasi.
1. Arsitektur ATMEGA 64
ATmega64 adalah mikrokontroler 8-bit CMOS berdaya rendah
berdasarkan arsitektur RISC yang disempurnakan AVR. Dengan
menjalankan instruksi yang kuat dalam satu siklus clock, ATmega64
mencapai throughput mendekati 1 MIPS per MHz, yang
memungkinkan perancang sistem mengoptimalkan konsumsi daya
dibandingkan kecepatan pemrosesan.
40
Dengan memprogram Fuse M103C, ATmega64 akan kompatibel dengan ATmega103
Salam untuk RAM, I / O pin dan Interrupt Vectors seperti yang dijelaskan di atas.
Namun, beberapa fitur baru
41
Di ATmega64 tidak tersedia dalam mode kompatibilitas ini, fitur ini tercantum di
bawah ini:
Satu USART, bukan dua, mode asinkron saja. Hanya delapan bit paling sedikit
Register Baud Rate tersedia.
Satu 16 bit Timer / Counter dengan dua register perbandingan, bukan dua 16
bit Timer / Counters
Dengan tiga register perbandingan.
Antarmuka serial dua kawat tidak didukung.
Port G hanya melayani fungsi alternatif (bukan port I / O umum).
Port F berfungsi sebagai input digital saja selain input analog ke ADC.
Kemampuan Boot Loader tidak didukung.
Tidak mungkin menyesuaikan frekuensi RC Oscillator yang dikalibrasi dalam.
Antarmuka Memori Eksternal tidak dapat melepaskan pin Alamat untuk I / O
umum, tidak
Konfigurasikan negara tunggu yang berbeda ke bagian Alamat Memori Eksternal yang
berbeda.
Hanya EXTRF dan PORF yang ada di Register MCUCSR.
Tidak ada urutan waktu yang diperlukan untuk perubahan Timeflow Watchdog.
Hanya interupsi eksternal tingkat rendah yang dapat digunakan pada empat dari
delapan sumber Interrupt Eksternal.
Port C hanya output.
USART tidak memiliki buffer FIFO, jadi Data OverRun datang lebih awal.
Pengguna harus menyetel bit I / O yang tidak terpakai ke 0 dalam program
ATmega103.
Juga dapat digunakan sebagai pointer alamat untuk melihat tabel dalam
memori program Flash. Ini
Register fungsi tambahan adalah register 16-bit X-, Y-, dan Z-register, yang
dijelaskan kemudian di bagian ini. ALU mendukung operasi aritmatika dan logika
antara register atau antara konstanta dan Sebuah daftar Operasi register tunggal juga
bisa dijalankan di ALU. Setelah operasi aritmatika, Register Status diperbarui untuk
mencerminkan informasi tentang hasil operasi. Aliran program disediakan dengan
lompatan bersyarat dan tanpa syarat dan instruksi panggilan, mampu Langsung alamat
seluruh ruang alamat. Sebagian besar instruksi AVR memiliki format kata 16-bit
tunggal. Setiap alamat memori program berisi instruksi 16-bit atau 32-bit. Program
Flash memory space
42
Terbagi dalam dua bagian, bagian program Boot dan Bagian program aplikasi
Kedua bagian tersebut telah menghususkan bit Lock untuk menulis dan membaca /
menulis perlindungan. Instruksi SPM yang menulis ke bagian memori Flash Aplikasi
harus Berada di bagian program Boot. Selama interupsi dan panggilan subrutin, alamat
pengirim Program Counter (PC) disimpan di Tumpukan. Stack secara efektif
dialokasikan dalam data umum SRAM, dan akibatnya Stack Ukurannya hanya dibatasi
oleh total ukuran SRAM dan penggunaan SRAM. Semua program pengguna harus
Inisialisasi SP dalam rutin reset (sebelum subrutin atau interrupts dijalankan).
Tumpukan Pointer SP bisa dibaca / dibaca di ruang I / O. Data SRAM mudah diakses
Melalui lima mode pengalamatan berbeda yang didukung dalam arsitektur AVR.
Ruang memori dalam arsitektur AVR semuanya peta memori linier dan reguler. Modul
interupsi yang fleksibel memiliki register kontrol di ruang I / O dengan tambahan
Global Interrupt Mengaktifkan sedikit dalam Register Status. Semua interupsi
memiliki Interrupt Vector yang terpisah di Tabel interrupt vector Interupsi memiliki
prioritas sesuai dengan posisi Interrupt Vector mereka. Semakin rendah alamat
Interrupt Vector, semakin tinggi prioritasnya. Ruang memori I / O berisi 64 alamat
yang dapat diakses secara langsung, atau sebagai Data Lokasi ruang mengikuti berkas
Register, 0x20 - 0x5F. Selain itu, ATmega64 punya Ruang I / O yang diperpanjang
dari 0x60 - 0xFF di SRAM dimana hanya ST / STS / STD dan LD / LDS / LDD
Instruksi bisa digunakan
2. Konfirgurasi Pin ATMEGA 64
43
Pin deskripsi
VCC Digital supply voltage.
GND Ground
Port A
(PA7..PA0) Port A adalah port I / O 8-bit bi-directional dengan resistor pull-up
internal (dipilih untuk setiap bit). Itu Port A output buffer memiliki karakteristik drive
simetris dengan sink dan sumber yang tinggi kemampuan. Sebagai input, pin Port A
yang ditarik secara eksternal akan rendah sumber arus jika pull-up Resistor diaktifkan
Pin Port A diberi tri-menyatakan saat kondisi reset menjadi aktif, Bahkan jika jam
tidak berjalan. Port A juga melayani fungsi berbagai fitur spesial ATmega64 seperti
yang tertera di halaman
Port B
(PB7..PB0) Port B adalah port I / O 8-bit bi-directional dengan resistor pull-up
internal (dipilih untuk setiap bit). Itu Port B buffer output memiliki karakteristik drive
simetris dengan sink dan sumber yang tinggi kemampuan. Sebagai input, pin Port B
yang ditarik secara eksternal akan rendah sumber arus jika pull-up Resistor diaktifkan
44
Port B pin tri-menyatakan ketika kondisi reset menjadi aktif, Bahkan jika jam tidak
berjalan. Port B juga melayani fungsi berbagai fitur spesial ATmega64. 2490R-AVR-
02/2013
Port C
(PC7..PC0) Port C adalah port I-O 8-bit bi-directional dengan resistor pull-up internal
(dipilih untuk setiap bit). Itu Penyangga keluaran Port C memiliki karakteristik drive
simetris dengan sink dan sumber yang tinggi kemampuan. Sebagai input, pin Port C
yang ditarik secara eksternal akan rendah sumber arus jika pull-up Resistor diaktifkan
Pin Port C diberi tri-menyatakan saat kondisi reset menjadi aktif, modus
kompatibilitas ATmega103, Port C hanya output, dan port C pin tidak diberi tri-stated
Ketika kondisi reset menjadi aktif.
Port D
(PD7..PD0) Port D adalah port I / O 8-bit bi-directional dengan resistor pull-up
internal (dipilih untuk setiap bit). Itu Port D buffer output memiliki karakteristik drive
simetris dengan sink dan sumber yang tinggi kemampuan. Sebagai input, pin Port D
yang ditarik secara eksternal akan rendah sumber arus jika pull-up Resistor diaktifkan
Port D pin adalah tri-menyatakan ketika kondisi reset menjadi aktif, Bahkan jika jam
tidak berjalan.
Port E
(PE7..PE0) Port E adalah port I / O 8-bit bi-directional dengan resistor pull-up
internal (dipilih untuk setiap bit). Itu Port E output buffer memiliki karakteristik drive
simetris dengan sink dan sumber yang tinggi kemampuan. Sebagai input, pin Port E
yang ditarik secara eksternal akan rendah sumber arus jika pull-up Resistor diaktifkan
Pin Port E adalah tri-menyatakan ketika kondisi reset menjadi aktif, Bahkan jika jam
tidak berjalan.
Port F
(PF7..PF0) Port F berfungsi sebagai input analog ke A / D Converter. Port F juga
berfungsi sebagai port I / O 8-bit bi-directional, jika Konverter A / D tidak digunakan.
Pin port Dapat memberikan resistor pull-up internal (dipilih untuk setiap bit).
Penyangga keluaran Port F memiliki simetris Karakteristik drive dengan kemampuan
sink dan sumber yang tinggi. Sebagai input, pin Port F Yang ditarik secara eksternal
akan rendah sumber arus jika resistor pull-up diaktifkan. Port F Pin tri-menyatakan
ketika kondisi reset menjadi aktif, bahkan jika jam tidak berjalan. Jika Antarmuka
JTAG diaktifkan, resistor pull-up pada pin PF7 (TDI), PF5 (TMS) dan PF4 (TCK)
akan Diaktifkan bahkan jika reset terjadi. Pin TDO adalah tri-menyatakan kecuali
TAP menyatakan bahwa pergeseran data dimasukkan. Port F juga melayani fungsi
45
antarmuka JTAG. Pada mode kompatibilitas ATmega103, Port F hanya merupakan
port input.
Port G
(PG4..PG0) Port G adalah port I / O berdimensi 5-bit dengan resistor pull-up internal
(dipilih untuk setiap bit). Itu Port G buffer output memiliki karakteristik drive
simetris dengan sink dan sumber yang tinggi kemampuan. Sebagai input, pin Port G
yang ditarik secara eksternal akan rendah sumber arus jika pull-up Resistor diaktifkan
Pin Port G diberi tri-menyatakan saat kondisi reset menjadi aktif, Bahkan jika jam
tidak berjalan. Port G juga melayani fungsi berbagai fitur spesial. Pada mode
kompatibilitas ATmega103, pin ini hanya berfungsi sebagai sinyal strobes ke luar
Memori serta masukan ke Oscillator 32 kHz, dan pin diinisialisasi ke PG0 = 1, PG1 =
1, dan PG2 = 0 secara asinkron saat kondisi reset menjadi aktif, biarpun jam Tidak
berjalan PG3 dan PG4 adalah pin Oscillator. RESET Reset input. Tingkat rendah
pada pin ini lebih lama dari panjang pulsa minimum akan menghasilkan a Reset,
bahkan jika jam tidak berjalan. Panjang pulsa minimum diberikan pada Tabel 19 di
halaman
XTAL1
Masukan ke penguat Oscillator pembalik dan masukan ke sirkuit operasi jam internal.
Output XTAL2 dari amplifier Oscillator pembalik.
AVCC
AVCC adalah pin tegangan suplai untuk Port F dan A / D Converter. Ini harus
terhubung secara eksternal Ke VCC, bahkan jika ADC tidak digunakan. Jika ADC
digunakan, seharusnya terhubung ke VCC Melalui filter low-pass.
AREF
AREF adalah pin referensi analog untuk A / D Converter.
PEN Ini adalah pemrograman yang memungkinkan pin untuk mode Pemrograman
Serial SPI. Dengan memegang pin ini rendah Saat Power-on Reset, perangkat akan
memasuki mode Pemrograman Serial SPI. PEN secara internal Menarik tinggi Pullup
ditunjukkan pada Gambar 22 di halaman 52 dan nilainya diberikan di Bagian
46
Bab 6
47
1) Fitur dari ATmega103
48
- Frekuensi Jam Dipilih Perangkat Lunak
- Sumber Interupsi Eksternal dan Internal
Spesifikasi
- Aktif: 5.5 mA
I / O dan Paket
- TQFP bertegangan 64
Tegangan Operasi
Kelas Kecepatan
49
Konfigurasi Pin
50
Pin deskripsi
VCC
Tegangan suplai
GND
Ground
Port A (PA7..PA0)
Port A adalah port I / O 8-bit bi-directional. Port pin dapat memberikan
resistor pull-up internal (dipilih untuk setiap bit). Penyangga keluaran Port A
dapat tenggelam 20 mA dan dapat mengarahkan display LED secara
langsung. Ketika pin PA0 sampai PA7 digunakan sebagai masukan dan
ditarik secara eksternal rendah, mereka akan mencari arus jika resistor pull-up
internal diaktifkan.
Port A berfungsi sebagai Multiplexed Address / Data bus saat
menggunakan SRAM eksternal.
Pin Port A diberi tri-menyatakan saat kondisi reset menjadi aktif,
meskipun jam tidak menyala.
Port B (PB7..PB0)
51
masukan, pin Port B yang ditarik secara eksternal rendah, akan menjadi
sumber arus jika resistor pull-up diaktifkan.
Pin Port B diberi tri-menyatakan saat kondisi reset menjadi aktif, meski
jam tidak menyala.
Port C (PC7..PC0)
Port C adalah port output 8-bit. Penyangga keluaran Port C dapat
tenggelam 20 mA.
Port C juga berfungsi sebagai Address output saat menggunakan SRAM
eksternal.
Karena Port C adalah port output saja, pin Port C tidak diberi tanda tri
ketika kondisi reset menjadi aktif.
Port D (PD7..PD0)
Port D adalah port I / O 8-bit bi-directional dengan resistor pull-up
internal. Penyangga keluaran Port D bisa tenggelam 20 mA. Sebagai input,
pin Port D yang ditarik secara eksternal akan rendah sumber arus jika resistor
pull-up diaktifkan.
Port D juga melayani fungsi berbagai fitur spesial.Port D pin tri-
menyatakan ketika kondisi reset menjadi aktif, bahkan jika jam tidak berjalan.
Port E (PE7..PE0)
Port E adalah port I / O 8-bit bi-directional dengan resistor pull-up
internal. Port E output buffer dapat tenggelam 20 mA. Sebagai masukan,
52
pinPort E yang ditarik secara eksternal akan rendah sumber arus jika resistor
pull-up diaktifkan.
Port F (PF7..PF0)
Port F adalah port input 8 bit. Port F juga berfungsi sebagai input analog
untuk ADC.
RESET
Setel ulang masukan Sebuah reset eksternal dihasilkan oleh tingkat rendah
pada pin RESET.
Reset pulsa lebih lama dari 50 ns akan menghasilkan reset, meski jam
tidak berjalan. Pulsa yang lebih pendek tidak dijamin menghasilkan reset.
XTAL1
Masukan ke penguat Oscillator pembalik dan masukan ke sirkuit operasi
jam internal.
XTAL2
Keluaran dari penguat Oscillator pembalik.
TOSC1
Masukan ke penguat Timer / Counter Oscillator pembalik.
TOSC2
53
Output dari penguat Timer / Counter Oscillator pembalik.
WR
SRAM eksternal menulis strobo
RD
SRAM eksternal membaca strobo
ALE
ALE adalah Address Latch Enable yang digunakan saat Memori Eksternal
diaktifkan.
ALE
Strobe digunakan untuk mengunci alamat low-order (8 bit) ke dalam kait
alamat selama siklus akses pertama, dan pin AD0-7 digunakan untuk data
selama siklus akses kedua.
AVCC
Tegangan suplai untuk Port F, termasuk ADC. Pin harus terhubung ke
VCC bila tidak digunakan untuk ADC. Lihat "Teknik Membatalkan
Kebisingan ADC" pada halaman 82 untuk rincian bila menggunakan ADC.
AREF
AREF adalah input referensi analog untuk konverter ADC. Untuk operasi
ADC, tegangan di kisaran AGND ke AVCC harus diaplikasikan pada pin ini.
AGND
54
Jika papan memiliki bidang ground analog yang terpisah, pin ini harus
dihubungkan ke bidang ground ini. Jika tidak, sambungkan ke GND.
Diagram Blok
55
2) Clock Options
Kristal osilator
XTAL1 dan XTAL2 masing-masing adalah input dan output dari penguat
pembalik, yang dapat dikonfigurasi untuk digunakan sebagai Oscillator on chip,
56
seperti yang ditunjukkan pada Gambar 2. Entah kristal kuarsa atau resonator
keramik dapat digunakan.
Gambar 2.
Sambungan Oscillator
catatan:
Saat menggunakan MCU Oscillator sebagai jam untuk perangkat eksternal,
penyangga HC harus sesuai seperti ditunjukkan pada gambar.
A. Ikhtisar Arsitektur
57
AVR menggunakan konsep arsitektur Harvard - dengan memori dan bus
terpisah untuk program dan data. Memori Program diakses dengan pipa satu
tingkat. Saat satu instruksi dieksekusi, instruksi berikutnya diambil dari memori
Program. Konsep ini memungkinkan instruksi dijalankan dalam setiap siklus
clock. Memori Program adalah memori Flash Programmable. Dengan beberapa
pengecualian, instruksi AVR memiliki format kata 16 bit tunggal, yang berarti
bahwa setiap alamat memori Program berisi satu instruksi 16 bit.
Selama interupsi dan panggilan subrutin, alamat pengirim Program Counter
(PC) disimpan di Stack. Stack secara efektif dialokasikan dalam data SRAM
58
umum dan, oleh karena itu, ukuran Stack hanya dibatasi oleh ukuran SRAM total
dan penggunaan SRAM. Semua program pengguna harus menginisialisasi SP
dalam rutinitas reset (sebelum subrutinines interrupts dijalankan). Pointer Stack
16-bit (SP) dibaca / dibaca diakses di ruang I / O.
Data 4000 byte SRAM dapat diakses dengan mudah melalui lima mode
pengalamatan berbeda yang didukung dalam arsitektur AVR.
Modul interupsi yang fleksibel memiliki register kontrol di ruang I / O dengan
bit Global Interrupt Enable tambahan di Register Status. Semua interupsi yang
berbeda memiliki Interrupt Vector terpisah di tabel Interrupt Vector pada awal
memori Program. Interupsi yang berbeda memiliki prioritas sesuai dengan posisi
Interrupt Vector mereka. Semakin rendah alamat Interrupt Vector, semakin tinggi
prioritasnya.
Ruang memori dalam arsitektur AVR semuanya peta memori linier dan
reguler.
59
bertambah dengan 2. Bila AVR keluar dari interupsi, ia akan selalu kembali ke
program utama dan menjalankan satu instruksi lagi. Sebelum interupsi yang
tertunda dilayani.
4) Sleep Mode
Untuk memasukkan salah satu dari tiga mode tidur, bit SE di MCUCR harus
disetel (satu) dan instruksi SLEEP harus dijalankan. Bit SM1 dan SM0 dalam
Register MCUCR pilih mode tidur (Idle, Power-down, atau Power-save) yang
akan diaktifkan oleh instruksi SLEEP.
Jika interupsi diaktifkan terjadi saat MCU dalam mode tidur, MCU terbangun,
menjalankan rutinitas interupsi dan melanjutkan eksekusi dari instruksi berikut
TIDUR. Isi memori Register File, SRAM, dan I / O tidak berubah. Jika reset
terjadi selama mode tidur, MCU terbangun dan dijalankan dari Reset Vector.
5) Mode siaga
Ketika bit SM1 / SM0 diset ke 00, instruksi SLEEP membuat MCU masuk ke
mode Idle, menghentikan CPU namun memungkinkan SPI, UART, Analog
Comparator, ADC, Timer / Counters, Watchdog dan sistem interupsi untuk terus
beroperasi. Hal ini memungkinkan MCU untuk bangun dari interupsi terpicu
eksternal maupun internal seperti Timer Overflow dan UART Receive Complete
interrupts. Jika bangun dari Analog Comparator interrupt tidak diperlukan,
Analog Comparator dapat dimatikan dengan mengatur ACD-bit di Analog
Comparator Control and Status Register (ACSR). Ini akan mengurangi konsumsi
60
daya dalam mode Idle. Saat MCU terbangun dari mode Idle, CPU memulai
eksekusi program dengan segera.
6) Mode Power-down
Bila bit SM1 / SM0 diset ke 10, instruksi SLEEP membuat MCU masuk ke
mode Power-down. Dalam mode ini, Osilator eksternal dihentikan sementara
interrup eksternal dan Watchdog (jika diaktifkan) terus beroperasi. Hanya Reset
Eksternal, Reset Watchdog (jika diaktifkan), atau interupsi tingkat eksternal dapat
membangkitkan MCU.
Saat bangun dari mode Power-down, penundaan dari kondisi bangun terjaga
sampai bangun menjadi efektif. Hal ini memungkinkan jam untuk restart dan
menjadi stabil setelah dihentikan. Masa bangun ditentukan oleh sekering SUT
61
yang sama yang menentukan periode Reset Time-out. Masa bangun sama dengan
periode reset jam.
Jika kondisi bangun hilang sebelum MCU terbangun dan mulai melakukan
eksekusi, misalnya, level rendah tidak dipegang cukup lama, penyebab interupsi
Bila bit SM1 / SM0 adalah 11, instruksi SLEEP membuat MCU masuk
Mode hemat daya Mode ini identik dengan Power-down, dengan satu
pengecualian:
Jika Timer / Counter0 dibuat secara asinkron, yaitu, bit AS0 pada ASSR
disetel, Timer / Counter0 akan berjalan saat tidur. Selain sumber bangun Power-
down, perangkat juga dapat terbangun dari event Timer Overflow atau Output
Compare dari Timer / Counter0 jika bit pengatur interupsi Timer / Counter0 yang
sesuai diatur dalam TIMSK. Untuk memastikan bahwa bagian tersebut
menjalankan rutinitas interupsi saat bangun, tetapkan ID Global Interrupt Enable i
SREG.
Saat bangun dari mode Power-save oleh interupsi eksternal, dua siklus
instruksi dijalankan sebelum Flag Interrupt diperbarui. Saat terbangun oleh timer
asinkron, tiga siklus instruksi dijalankan sebelum flag diperbarui. Selama siklus
ini, prosesor mengeksekusi instruksi, namun kondisi interupsi tidak dapat dibaca
dan rutin interupsi belum dimulai. Jika timer asinkron tidak direkam secara
asinkron, mode Power-down dianjurkan dan bukan mode Hemat Daya karena isi
62
register pada timer asinkron harus dianggap tidak terdefinisi setelah terbangun
dalam mode owersave jika AS0 adalah 0.
63
Bab 7
Mikrokontroler adalah komputer kecil dalam satu chip (integrated circuit) yang
mengandung sebuah unit processor, memori, dan bagian programabel I/O (input/output).
Pemrograman memori dalam bentuk NOR flash atau OTP ROM sudah termasuk dalam chip
tersebut berupa RAM. Mikrokontroler didisain untuk aplikasi embedded system. Mikrokontroler
banyak digunakan pada produk-produk atau perangkat otomatis, seperti misalnya pada sistem
kontrol mesin otomatis pada mobil, remote control, mesin kantor, mainan elektronika, dan
embedded sistem lainnya.
64
a) AVR®–High-PerformancedanLow-PowerRISCArsitektur.
b) CPUyangterdiriatas32buahregister.
c) MemoriFlashsebesar128KbdengankemampuanRead/Write.
d) SRAMInternalsebesar4Kb.
e) EEPROMsebesar4Kb.
f) Duabuah8-bitTimer/Counterdengankemampuanpembandingandan
Prescalerterpisah.
g) Duabuah16-bitTimer/Counterdengankemampuanpembanding, Prescalerterpisah.
h) Duabuah8-bitsaluranPWM.
i) Duabuah8-bitPWMChannel.
j) ADCinternal10-bit,8Channel.
k) PortUSARTuntukkomunikasiserial.
l) Portantarmukakomparatoranalog.
m) Real timecounter.
n) Port I/O sebanyak 53 buah, yaitu: port A, port B, port C, port D, Port
E,portFdanportG.
o) Teganganoperasisampaidengan5,5V.
a) Memori program
65
program boot dan bagian program aplikasi.
b) Memori data
66
Gambar Blok Diagram ATmega128
Atmega128 merupakan tipe AVR yang telah dilengkapi dengan 8 saluran ADC internal dengan
fidelitas 10 bit. Dalam mode operasinya, ADC Atmega128 dapat dikonfigurasi, baik secara single ended
input maupun differential input. Selain itu, ADC Atmega128 memiliki konfigurasi pewaktuan, tegangan
referensi, mode operasi, dan kemampuan filter derau yang amat fleksibel, sehingga dengan mudah
disesuaikan dengan kebutuhan ADC itu sendiri. ADC ATmega128 juga memiliki pin suplai tegangan
analog terpisah (AVCC), dimana besarnya AVCC ini tidak boleh melebihi + 0,3 V dari tegangan kerja
(VCC).
Atmega128 memiliki 4 modul timer yang terdiri dari 2 buah timer/counter 8 bit dan 2 buah
timer/counter 16 bit. Keempat modul timer/counter ini dapat diatur dalam mode yang berbeda secara
individu dan tidak saling mempengaruhi satu sama lain.Selain itu, semua timer/counter juga dapat
67
difungsikan sebagai sumber interupsi. Masing-masing timer/counter ini memiliki register tertentu yang
digunakan untuk mengatur mode dan cara kerjanya.
Dari gambar di atas dapat dijelaskan fungsi dari masing-masing pin Atmega128
sebagai berikut:
a) VCC merupakan pin yang berfungsi sebagai masukan catu daya / sumbertegangan.
b) AVCC merupakan pin yang berfungsi sebagai masukan catu daya / sumber tegangan
untuk analog (masukan analog maupun ADC).
68
c) GND merupakan pin Ground.
d) PortA (Port A0…Port A7) merupakan pin input/output dua arah dan pin dengan fungsi
khusus, seperti dapat dilihat pada tabel di bawah ini.
e) Port B (PortB s/d PortB7) merupakan pin input/output dua arah danpindengan fungsi
khusus, seperti dapat dilihat pada tabel di bawah ini.
69
PB3 MISO (SPI Bus Master Input/Slave Output)
PB2 MOSI (SPI Bus Master Output/Slave Input)
PB1 SCK (SPI Bus Serial Clock)
PB0 SS (SPI Slave Select input)
Fungsi Port B
f) Port C (PortC0 s/d PortC7) merupakan pin input/output dua arah danpin dengan fungsi
khusus, seperti dapat dilihat pada tabel dibawah ini.
Fungsi Port D
h) Port E (PortE0 s/d PortE7) merupakan pin input/output dua arah danpindengan fungsi
khusus, seperti dapat dilihat pada tabel dibawah ini.
Fungsi Port E
Port Pin Fungsi Khusus
INT7/ICP3 (External Interrupt 7 Input or Timer/Counter3
PE7
Input Capture Pin)
INT6/T3 (External Interrupt 6 Input or Timer/Counter3
PE6
Clock Input)
70
INT5/OC3C (External Interrupt 5 Input or Output Compare
PE5
and PWM Output C for Timer/Counter3)
INT4/OC3B (External Interrupt 4 Input or Output Compare
PE4
and PWM Output B for Timer/Counter3)
PE3 AIN1/OC3A (Analog Comparator Negative Input or Output
Compare and PWM Output A for Timer/Counter3)
AIN0/XCK0 (Analog Comparator Positive Input or
PE2
USART 0 External Clock Input/Output)
PDO/TXD0 (Programming Data Output or UART
PE1
0Transmit Pin)
PE0 PDI/RXD0 (Programming Data Input or UART 0 Receive
Pin)
71
Bab 8
72
dengan Flash Cepat Programmable In-System pada chip monolitik, Atmel ATmega324P adalah
mikrokontroler yang kuat yang memberikan solusi fleksibel dan hemat biaya untuk banyak
aplikasi kontrol tersemat.
ATmega324P didukung dengan rangkaian lengkap alat pengembangan program dan sistem
termasuk: Compiler C, Perakit Makro, Debugger / Simulator Program, In-Circuit Emulators, dan
Evaluation kits.
Spesifikasi ATmega324P
1. Berbasis ATmega324(P)A (32KB Flash Memory, 1 KB EEPROM
2. 2 KB Internal SRAM). 2. Memiliki jalur Input/Output hingga 32 pin, termasuk 2
timer/counter 8 bit, 1 timer/counter 16 bit, 6 kanal PWM, 8 kanal ADC 10 bit, 2 serial
USART, watchdog timer, dan analog comparator.
3. Tersedia crystal oscilator berfrekuensi 8 MHz.
4. Sebuah port untuk pemrograman secara ISP.
5. LED indikator pemrograman
6. Catu daya (VCC) 2,7 - 5,5 Volt DC.
7. Kompatibel dengan DT-COMBO BASE BOARD Series.
73
On-chip 2
-cycle Multiplier
High Memory Segmen Memori Non-volatile
32KBytes Memori Program Flash yang Diatur Sendiri
1KBytes EEPROM - 2KBytes SRAM Internal
Siklus Write / Erase: 10.000 Flash / 100.000 EEPROM
Retensi Data: 20 Tahun pada 85 ° C / 100 Tahun Pada 25 ° C (1)
Bagian Kode Basis Opsional dengan Kunci Kunci Independen
Pemrograman Dalam Sistem oleh Program Boot On-chip
Operasi Membaca-Sementara-Tulis yang Benar
74
-chip Terpisah
On-chip Analog Comparator - Interrupt dan Wake-up pada Pin Change
Fitur Mikrokontroler Khusus
Reset Power-on dan Deteksi Brown-out yang dapat diprogram
Oscillator RC yang dikalibrasi dalam
Sumber Interupsi Internal dan Internal
Enam Mode Tidur: Idle, Pengurangan Suara ADC, Hemat Daya, Power-down, Standby,
dan Extended Standby
I / O dan Paket
32 Jalur I / O Programmable
pin 40 PDIP
44-lead TQFP
44 pad VQFN / QFN
Tegangan Operasi:
1.8 - 5.5V untuk ATmega324PV
2.7 - 5.5V untuk ATmega324P
Nilai Kecepatan
ATmega324PV: 0 - 4MHz @ 1.8V - 5.5V s/d 0 - 10MHz @ 2.7V - 5.5V
ATmega324P: 0 - 10MHz @ 2.7V - 5.5V s/d 0 - 20MHz @ 4.5 - 5.5V
Konsumsi Daya pada 1MHz, 1.8V, 25 ° C
Mode Aktif: 0.4mA
Mode Power-down: 0.1μA
Mode Hemat Daya: 0.6μA (Termasuk RTC 32kHz )
2. Ringkasan Konfigurasi
Tabel di bawah membandingkan rangkaian perangkat fitur dan pin perangkat yang
kompatibel, menyediakan jalur migrasi yang mulus.
Tabel 2-1. Ringkasan Konfigurasi dan Perbandingan Perangkat
75
3. Diagram Blok
76
3. Pin Konfiguration
Keterangan
1. VCC
Tegangan suplai digital
2. GND
Tanah
3. Port A (PA [7: 0])
Port ini berfungsi sebagai input analog ke Analog-to-digital Converter. Ini adalah port I /
O 8-bit, bi-directional dengan resistor pull-up internal, masing-masing dapat dipilih untuk setiap
bit. Buffer output memiliki karakteristik drive simetris, dengan kemampuan sink dan sumber yang
tinggi. Sebagai input, pin port yang ditarik secara eksternal akan rendah sumber arus jika resistor
pull-up diaktifkan. Port pin tri-menyatakan ketika kondisi reset menjadi aktif, bahkan jika jam
tidak berjalan.
4. Port B (PB [7: 0])
Ini adalah port I / O 8-bit, bi-directional dengan resistor pull-up internal, masing-masing
dapat dipilih untuk setiap bit. Buffer output memiliki karakteristik drive simetris, dengan
77
kemampuan sink dan sumber yang tinggi. Sebagai input, pin port yang ditarik secara eksternal
akan rendah sumber arus jika resistor pull-up diaktifkan. Port pin tri-menyatakan ketika kondisi
reset menjadi aktif, bahkan jika jam tidak berjalan. Port ini juga melayani fungsi berbagai fitur
spesial.
5. Port C (PC [7: 0])
Ini adalah port I / O 8-bit, bi-directional dengan resistor pull-up internal, masing-masing
dapat dipilih untuk setiap bit. Buffer output memiliki karakteristik drive simetris, dengan
kemampuan sink dan sumber yang tinggi. Sebagai input, pin port yang ditarik secara eksternal
akan rendah sumber arus jika resistor pull-up diaktifkan. Port pin tri-menyatakan ketika kondisi
reset menjadi aktif, bahkan jika jam tidak berjalan. Port ini juga melayani fungsi antarmuka JTAG,
bersamaan dengan fitur spesial.
6. Port D (PD [7: 0])
Ini adalah port I / O 8-bit, bi-directional dengan resistor pull-up internal, masing-masing
dapat dipilih untuk setiap bit. Buffer output memiliki karakteristik drive simetris, dengan
kemampuan sink dan sumber yang tinggi. Sebagai input, pin port yang ditarik secara eksternal
akan rendah sumber arus jika resistor pull-up diaktifkan. Port pin tri-menyatakan ketika kondisi
reset menjadi aktif, bahkan jika jam tidak berjalan. Port ini juga melayani fungsi berbagai fitur
spesial.
7. RESET
Setel ulang masukan Tingkat rendah pada pin ini lebih lama dari panjang pulsa minimum
akan menghasilkan reset, meski jam tidak menyala. Pulsa yang lebih pendek tidak dijamin
menghasilkan reset.
8. XTAL1
Masukan ke penguat Oscillator pembalik dan masukan ke sirkuit operasi jam internal.
9. XTAL2
Keluaran dari penguat Oscillator pembalik
10. AVCC
AVCC adalah pin suplai tegangan untuk Port A dan Analog-to-digital Converter. Ini harus
terhubung secara eksternal ke VCC, bahkan jika ADC tidak digunakan. Jika ADC digunakan,
seharusnya terhubung ke VCC melalui filter low-pass.
11. AREF Ini adalah pin referensi analog untuk Analog-to-digital Converter
78
5. AVR CPU Core
Bagian ini membahas arsitektur inti AVR secara umum. Fungsi utama inti CPU adalah
memastikan eksekusi program yang benar. Oleh karena itu, CPU harus dapat mengakses,
melakukan perhitungan, mengendalikan periferal, dan menangani interupsi.
Gambar 8-1. Diagram Blok Arsitektur AVR
79
fungsi tambahan ini adalah register 16-bit X-, Y-, dan Z-register, yang dijelaskan kemudian di
bagian ini.
ALU mendukung operasi aritmatika dan logika antara register atau antara konstanta dan
register. Operasi register tunggal juga bisa dijalankan di ALU. Setelah operasi aritmatika, Register
Status diperbarui untuk mencerminkan informasi tentang hasil operasi.
Aliran program disediakan dengan lompatan bersyarat dan tanpa syarat dan instruksi panggilan,
yang bisa langsung menangani keseluruhan ruang alamat. Sebagian besar instruksi AVR memiliki
format kata 16-bit tunggal. Setiap alamat memori program berisi instruksi 16 atau 32 bit. Program
Flash memory space terbagi dalam dua bagian, bagian Program Boot dan bagian Program Aplikasi.
Kedua bagian telah menghususkan bit Lock untuk menulis dan membaca / menulis perlindungan.
Instruksi SPM yang menulis ke bagian memori Flash Aplikasi harus berada di bagian Program
Boot. Selama interupsi dan panggilan subrutin, alamat pengirim Program Counter (PC) disimpan
di Stack. Stack secara efektif dialokasikan pada data SRAM umum, dan akibatnya ukuran Stack
hanya dibatasi oleh total ukuran SRAM dan penggunaan SRAM. Semua program pengguna harus
menginisialisasi SP dalam rutinitas Reset (sebelum subrutin atau interrupts dijalankan). Stack
Pointer (SP) dibaca / dibaca diakses di ruang I / O. Data SRAM dapat dengan mudah diakses
melalui lima mode pengalamatan berbeda yang didukung dalam arsitektur AVR. Ruang memori
dalam arsitektur AVR semuanya peta memori linier dan reguler. Modul interupsi yang fleksibel
memiliki register kontrol di ruang I / O dengan bit Global Interrupt Enable tambahan di Register
Status. Semua interupsi memiliki Interrupt Vector yang terpisah pada tabel Interrupt Vector.
Interupsi tersebut diprioritaskan sesuai dengan posisi Interrupt Vector mereka. Semakin rendah
alamat Interrupt Vector, semakin tinggi prioritasnya. Ruang memori I / O berisi 64 alamat untuk
fungsi periferal CPU sebagai Control Registers, SPI, dan fungsi I / O lainnya. Memori I / O dapat
diakses secara langsung, atau sebagai lokasi Data Space mengikuti berkas Register, 0x20 - 0x5F.
Selain itu, perangkat ini memiliki ruang
80