Osilator Eksternal Mikrokontroler ATmega8535
Tabel 2.12.
Register
1B [2]
Bit 7
6 5
4 3
2 1
OCR
1
B[15:8] OCR
1
BH OCR
1
B[7:0] OCR
1
BL ReadWrite
RW RW RW RW RW RW RW RW Initial Value
Register
ini bertugas sebagai
register
pembanding yang bisa kita tentukan besarnya sesuai dengan kebutuhan [2]. Dalam praktiknya pada saat TCNT
1
TCNT
1
H:TCNT
1
L mencacah maka otomatis oleh CPU akan dibandingkan dengan isi OCR
1
OCR
1
H:OCR
1
L secara kontinyu dan jika isi TCNT
1
sama dengan isi OCR
1
maka akan terjadi
compare match
yang dapat dimanfaatkan untuk
mode
CTC dan PWM. 5.
Input Capture Register
1 –ICR
1
H and ICR
1
L
Tabel 2.13.
Register
1 [2]
Bit 7
6 5
4 3
2 1
ICR
1
[15:8] ICR
1
H ICR
1
[7:0] ICR
1
L ReadWrite
RW RW RW RW RW RW RW RW Initial Value
Register
ICR
1
ICR
1
H:ICR
1
L akan selau diperbarui dengan isi
register
pencacah TCNT
1
pada saat tersebut sewaktu terjadi
triger capture event
pada
pin
ICP
1
[2].
Register
ICR
1
juga mempunyai fungsi lain untuk mendefinisikan
TOP value
pada
mode
tertentu lihat tabel
mode
operasi. 6.
TimerCounter Interrupt Mask Register
– TIMSK
Tabel 2.14.
Register TIMSK
[2]
Bit
7 6
5 4
3 2
1
OCIE2 TOIE2
TICIE1 OCIE1A
OCIE1B TOIE1
- TOIE0
TIMSK
ReadWrite RW
RW RW
RW RW
RW R
RW Initial Value
Bit
5 – TICIE
1
: TC
1
,
Input Capture Interrupt Enable Bit
ini berguna untuk meng-aktif-kan interupsi
input capture
penangkap kejadian pada
pin
ICP
1
PB ketika
bit
di-
set
[2].
Bit
4 – OCIE
1
A: TC
1
,
Output Compare
A
Match Interrupt Enable Bit
ini berguna untuk meng-aktif-kan interupsi
Output Compare
A
Match
ketika
bit
ini di-
set
.
Bit
3 – OCIE
1
B: TC
1
,
Output Compare
B
Match Interrupt Enable
Bit
ini berguna untuk meng-aktif-kan interupsi
Output Compare
B
Match
ketika
bit
ini di-
set
.
Bit
2 – TOIE
1
:
TimerCounter
1
, Overflow Interrupt Enable Bit
ini berguna untuk meng-aktifkan interupsi o
verflow
TCNT
1
ketika
bit
ini di-
set
. 6.
TimerCounter Interrupt Flag Register
– TIFR
Tabel 2.15.
Register
TIFR [2]
Bit
7 6
5 4
3 2
1
OCF2 TOV2
ICF1 OCF1A
OCF1B TOV1
- TOV0
TIFR
ReadWrite RW
RW RW
RW RW
RW R
RW Initial Value
Bit
5 – ICP
1
: TC
1
,
Input Capture Flag Bit
ini akan
set
secara otomatis ketika menagkap
triger
pada
pin
ICP [2].
Bit
ini akan
clear
juga secara otomatis ketika mengeksekusi vektor interupsi
input capture
. Untuk meng-
clear
secara
manual bit
ini maka
bit
ini harus di-
set
.
Bit
4 – OCF
1
A: TC
1
,
Output Compare
A
Match Flag Bit
ini akan
set
secara otomatis ketika terjadi
compare match
A.
Bit
ini akan
clear
juga secara otomatis ketika mengeksekusi vektor interupsi
output compare
A. Untuk meng-
clear
secara
manual bit
ini harus di-
set
.
Bit
3 – OCF1B:
TimerCounter
1,
Output Compare
B
Match Flag Bit
ini akan
set
secara otomatis ketika terjadi
compare match
B.
Bit
ini akan
clear
juga secara otomatis ketika mengeksekusi vektor interupsi
output compare
B. Untuk meng-
clear
secara
manual bit
ini maka
bit
ini harus di-
set
.
Bit
2 – TOV
1
:
TimerCounter
1,
Overflow Flag Bit
ini akan
set
secara otomatis ketika terjadi
overflow
pada
register
pencacah TCNT
1
.
Bit
ini akan
clear
juga secara otomatis ketika mengeksekusi vektor
overflow timercounter
1. Untuk meng-
clear
secara
manual bit
ini maka
bit
ini harus di-
set
.
2.1.6.
Mode Operasi
1. Mode Normal
Normal Overflow
: Dalam mode ini
register
pencacah TCNT
1
bekerja secara normal selalu mencacah menghitung ke atas atau
counting-up
hingga mencapai nilai maksimal 0xFFFF lalu 0x0000 lagi atau yang disebut
overflow
yang menyebabkan
flag
-TOV
1
secara otomatis
set
yang menandakan terjadinya interupsi jika interupsi
timercounter
1
overflow
diaktifkan [2]. Nilai TCNT
1
tidak harus selalu 0x0000 namun bisa ditentukan misalnya 0xF89 atau berapa pun sesuai kebutuhan.
Normal compare match
: Dalam mode ini
register
TCNT
1
bekerja seperti mode normal
overflow
, hanya jika isi
register
OCR
1
x x = A atau B, maka ketika TCNT
1
==OCR
1
x, maka akan terjadi
compare match
yang menyebabkan
flag
OCF
1
x secara otomatis
set
yang menandakan terjadinya interupsi jika interupsi
timer
1
compare match
x diaktifkan [2]. Ketika
compare match
dalam mode ini TCNT
1
akan terus menghitung hingga
overflow
dan mulai dari nol lagi, maka dapat mengaktifkan ketiga interupsi ini secara bersamaan
overflow
,
compare match
A dan B. 2.
CTC
Clear Timer on Compare match
Dalam mode ini
register
pencacah TCNT
1
mencacah naik
counting-up
hingga mencapai TOP nilai TCNT
1
sama dengan nilai OCR
1
yang telah ditentukan kemudian TCNT
1
nol lagi yang otomatis akan menge-
set flag
OCF
1
dan akan membangkitkan interupsi
timercounter
1
compare match
jika diaktifkan. Frekuensi CTC dapat dihitung dengan menggunakan persamaan:
2.2 dengan:
adalah frekuensi
clock chip
N adalah
prescaler
sumber
clock
yang digunakan 1, 8, 64, 256, 1024
3.
Fast
PWM
Pulse Width Modulation Timercounter
1 dalam mode
fast
PWM digunakan untuk mengendalikan lama t
on
dan t
off
melaui isi
register
pembanding OCR
1
A atau OCR
1
B yang akan berakibat kepada besar
duty cycle
yang dihasilkan. Untuk
chanel
saluran PWM
timercounter
1 adalah
pin
OC
1
A atau OC
1
B sebagai keluaran saluran PWM. Dalam mode
fast
PWM sifat cacahan
register
pencacah TCNT
1
mencacah dari BOTTOM 0x0000 terus mencacah
naik
counting-up
hingga mencapai TOP nilai maksimal yang ditentukan sesuai
resolusi yang diinginkan, misalnya resolusinya 10
bit
maka nilai TOP=0x01FF kemudian mulai dari BOTTOM
lagi dan begitu seterusnya atau yang dinamakan
single
slope
satu arah cacahan. Resolusi
fast
PWM dapat ditentukan dengan resolusi yang sudah tetap seperti 8, 9, 10
bit
atau bisa ditentukan melalui
register
ICR
1
atau OCR
1
A. Resolusi minimal yang diizinkan adalah 2-
bit
ICR
1
atau OCR
1
A diisi 0x0003, dan resolusi maksimal yang diizinkan adalah 16-
bit
ICR
1
atau OCR
1
A diisi 0xFFFF. Resolusi dapat dihitung dengan menggunakan persamaan berikut:
2.3 Dalam mode
non-inverting
saluran keluaran PWM pin OC
1
x di-
clear
pada saat
compare match
TCNT
1
==OCRx dan di-
set
ketika BOTTOM TCNT
1
=0x0000.
Gambar 2.4. Pulsa
fast
PWM [2]
Dalam mode
inverting
saluran keluaran PWM
pin
OC1x di-
set
pada saat
compare match
TCNT1==OCRx dan di-
clear
ketika
BOTTOM
TCNT1=0x0000. Secara kasar memberdakan
non-inverting
dengan
inverting
dalam mode
fast
PWM yaitu dilihat dari bentuk pulsanya. PWM
non-inverting
yang dikendalikan adalah lama t
on
– nya melalui isi OCR1x, sedangkan PWM
inverting
yang dikendalikan adalah lama t
off
– nya melalui isi OCR1x. Frekuensi
fast
PWM dihitung dengan menggunakan persamaan berikut:
2.4 dengan:
adalah frekuensi
clock chip
N adalah
prescaler
sumber
clock
yang digunakan 1, 8, 64, 256, 1024
4.
Phase Correct
PWM Pada mode ini cara operasi cacahan
register
TCNT1 menggunakan
dual slope
dua arahbolak-balik di mana TCNT1 mencacah dari BOTTOM
0x0000
counting-up
hingga mencapai TOP resolusi yang digunakan kemudian
counting-down
hingga BOTTOM
0x0000 dan begitu seterusnya. Resolusi mode
phase correct
PWM dapat kita tentukan secara tetap 8-, 9-, 10-
bit
atau kita tentukan menggunakan
register
ICR1 atau OCR1A dimana resolusi minimal yang diizinkan adalah 2-
bit
ICR1OCR1A diisi dengan 0x0003 dan maksimal 16-
bit
ICR1OCR1A diisi dengan 0xFFFF. Rumus untuk menentukan resolusi mode
phase correct
PWM. 2.5
Dalam mode
non-inverting
saluran keluaran PWM
pin
OC
1
x di-
clear
pada saat
compare match
TCNT
1
=OCRx ketika
counting-up
dan di-
set
pada saat
compare match
ketika
counting down
. Dalam mode
inverting
saluran keluaran PWM
pin
OC
1
x di-
set
pada saat
compare match
TCNT
1
=OCRx ketika
counting-up
dan di-
clear
pada saat
compare match
ketika
counting-down
.
Gambar 2.5. Pulsa
Phase Correct
PWM [2]
Frekuensi
Phase Correct
PWM dihitung dengan persamaan: 2.6
dengan: f
clk_IO
adalah frekuensi
clock chip
N adalah
prescaler
sumber
clock
yang digunakan 1, 8, 64, 256, 1024
2.2
Real Time Clock
DS1307
Real Time Clock
RTC merupakan suatu
chip
IC yang memiliki fungsi sebagai penyimpan waktu dan tanggal. Fitur utama DS1307 adalah mampu menghitung detik,
menit, jam, tanggal, tahun dengan koreksi tahun kabisat hingga tahun 2100, data bisa disimpan dengan bantuan baterai cadangan, dan antarmuka I
2
C. IC yang mempunyai
clock
sumber sendiri dan
internal batery
untuk menyimpan data waktu dan tanggal. Sehingga jika sistem komputer mikrokontroler mati waktu dan
tanggal di dalam memori RTC tetap
up date
. Gambar 2.6. menunjukkan diagram blok dari DS1307.
Gambar 2.6. Diagram blok DS1307 [5]
DS1307 yang digunakan memiliki paket DIL8
Dual In Line
8 seperti yang ditunjukkan Gambar 2.7.
Gambar 2.7. Konfigurasi
pin
RTC DS1307 [5]
Pin
-
pin
RTC DS1307 beserta penjelasannya adalah sebagai berikut: 1.
X1 dan X2 dihubungkan dengan kristal
quartz
32,768 kHz. Rangkaian osilator
internal
ini didesain untuk beroperasi dengan sebuah kristal yang mempunyai kapasitansi beban tertentu C
Load
yakni 12,5 pF.
2. Vcc, GND sebagai
power supply
utama. Vcc merupakan tegangan input +5 volt sedangkan GND merupakan
ground
. 3.
V
bat
merupakan tegangan input baterai
lithium cell
3 volt. Tegangan baterai harus berada antara tegangan minimum dan tegangan maksimum
yaitu 2,5 volt sampai 3,5 volt. Ketika tegangan 5 volt digunakan pada batas normal, RTC dapat diakses secara penuh dan data dapat ditulis dan dibaca. Ketika V
CC
kurang dari 1,25 x V
bat
, proses penulisan dan pembacaan menjadi terhalang. Namun demikian, proses penghitungan waktu tetap berjalan. Pada saat V
CC
kurang dari V
bat
, RAM dan penghitung waktu terhubung dengan baterai 3 volt.
4. SCL
Serial Clock Input
berfungsi sebagai
clock
untuk
input
ke I
2
C dan digunakan untuk menyinkronisasi pergerakan data dalam
serial interface
. 5.
SDA
Serial Data Input Output
berfungsi sebagai masukan keluaran IO untuk I
2
C
serial interface
.
Pin
ini bersifat
open drain
sehingga membutuhkan
eksternal pull-up resistor
. 6.
SQWOUT
Square Wave Output Driver
sebagai
square wave output driver
. Jika diaktifkan maka akan menjadi 4 frekuensi gelombang kotak yaitu 1 Hz, 4 kHz, 8
kHz, 32 kHz. Sifat dari
pin
ini sama dengan sifat
pin
SDA dan SCL sehingga membutuhkan
eksternal pull-up resistor
. Dapat dioperasikan dengan V
CC
maupun V
bat
.