Subscribe via email

Enter your email address:

Delivered by FeedBurner

Internal Oscilator Microcontroller

Yupzzz karena kemaren dapet pesanan dari "mazveri" tentang Internal Oscilator.., jadi lanjutan artikel ADCnya kita tunda dulu yaww... ^_^.
Kebanyakan rangkaian microcontroller yang kita gunakan menggunakan sumber clock Oscilator Eksternal (XTAL). Ada yang menggunakan 4 MHz,11.0592 MHZ, 12 MHz dll. Selain itu microcontroller juga dilengkapi Internal Oscilator. Jika kita mengaktifkan Internal Oscilator ini, maka kita tidak perlu menambahkan XTAL pada rangkaian kita.

Register yg berhubungan dg Oscilator:
Perhatikan gambar berikut :
image
Gambar di samping berasal dari datasheet ATmega8535 hal. 239.
Register yang berhubungan dengan Oscilator adalah SUT1..0 dan CKSEL3..0



SUT1..0 berfungsi untuk menentukan waktu start-up Oscilator
CKSEL3..0 untuk menentukan sumber Oscilator. Apakah internal atau eksternal?
image
Gambar di samping berasal dari data sheet ATmega8535 hal. 25
Perhatikan kombinasi nilai CKSEL3..0
Saat kita membeli chip ATmega 8535, register CKSEL3..0 telah diset oleh pabriknya dengan nilai "0001" biner. Ini berarti Internal Oscilator telah diaktifkan. Nilai Internal Oscilator ATmega8535 adalah 1MHz.
Mungkin ada yg nanya??? Jika dari setting awalnya chip ATmega8535 menggunakan Internal Oscilator, Mengapa eksternal oscilator (XTAL) saya berfungsi ??Mengapa setting Oscilator berubah menggunakan Eksternal Oscilator???
Setting Register-Register Oscilator
Saat kita mendownload program ke chip ATmega, setting default programmer CodeVision AVR seperti berikut:
image
Perhatikan setting fuse bit.
Register CKSEL3..0 diisi dengan nilai "0000" biner. Berarti setting Oscilator chip ATmega berubah menggunakan Oscilator Eksternal.
Kesimpulannya tanpa sadar kita telah merubah setting yang telah diset oleh pabrik.
Jika kita mau mengaktifkan lagi Internal Oscilator maka centang bit CKSEL0, agar register CKSEL bernilai "0001"
Lalu jika sudah ada Internal Oscilator, mengapa banyak orang yang menggunakan Oscilator Eksternal??
Beragam alasannya, misal:

  1. jika kita menggunakan chip ATmega untuk komunikasi serial(RS232) sebaiknya kita memakai XTAL 11,0592 MHz agar tidak ada error saat setting baudrate (error= 0%).
  2. menggunakan XTAL 4MHz, agar chip bisa lebih cepat jika dibandingkan dengan internal oscilator yang hanya 1MHz.
NB:
Jika kita sudah terlanjur men "SET" sumber clock chip menggunakan Oscilator Eksternal, maka kita harus memasang XTAL pada rangkaian microcontroller kita. Jika tidak microcontroller kita tidak akan berfungsi.
Saat XTAL telah terpasang dan rangkaian microcontroller kita sudah berfungsi, baru kita bisa merubah sumber clock chip agar kembali menggunakan Internal Oscilator atau tetap menggunakan Eksternal Oscilator
any questions?? post comment on this blog: http:\\avrku.blogspot.com
or send email to: zigan@ymail.com
CodeVisionAVR C Compiler is copyright by Pavel Haiduc, HP InfoTech s.r.l.
AVR is a registered trademark of Atmel Corporation.

Selengkapnya...

Mengenal ADC (1)

ADC (Analog to Digital Converter) adalah fitur paling populer dari ATmega 8535. Dengan adanya fitur ini kita tidak perlu menggunakan ADC0804 untuk membaca sinyal analog. ATmega 8535 memiliki 8 channel input ADC. Hasil pembacaan ADC beresolusi maksimum 10 bit (hmmm... cukup presisi. Biasanya saya hanya menggunakan 8 bit biar gak bingung ngitungnya.. He3...)
Register-Register yang mempengaruhi ADC:
Berikut adalah daftar register untuk menentukan setting ADC

Register ADMUX
Register ADMUX digunakan untuk:
menentukan tegangan referensi dari ADC
menentukan format data hasil konversi ADC
menentukan channel ADC yg akan digunakan (Ingat!! ATmega 8535 memiliki 8 channel ADC )
Berikut isi dari register ADMUX:
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
REFS1 REFS0 ADLAR - MUX3 MUX2 MUX1 MUX0

Bit 7 (REFS1) dan bit 6(REFS0) digunakan untuk menentukan tegangan referensi ADC.
Bit 7 Bit 6 Tegangan Referensi
0 0
pin AREF, internal Vref di matikan (off)
0 1
pin AVCC, dengan kapasitor eksternal pada  pin AREF
1 0 tidak digunakan

1

1
tegangan referensi internal 2,56 V dengan kapasitor eksternal pada pin AREF

Bit 5 (ADLAR) digunakan untuk menentukan format data hasil konversi.
Isi bit ini dengan 1 (ADLAR=1)jika menggunakan resolusi 8 bit

Bit 3..0 (MUX3..0) digunakan untuk menentukan channel ADC

Bit 3 Bit 2 Bit 1 Bit 0 Channel ADC
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7

Contoh:

      tegangan referensi  ADC menggunakan AVCC,  mode 10 bit, membaca channel 1

image
maka programnya:
       ADMUX=0x41;

    
Register ADCSRA
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0

Bit 7 (ADEN) untuk mengaktifkan ADC. ADEN=0 disable / ADEN=1 enable

Bit 6 (ADSC) untuk memulai (start) pembacaan ADC.

Bit 5 (ADFR)  jika ADFR=1 free running mode , ADFR=0 single conversion

Bit 4 (ADIF) bit penanda interupsi. Bernilai 1 saat konversi ADC selesai.

Bit 3 (ADIE) berfungsi untuk mengaktifkan interupsi ADC. ADIE=1 enable / ADIE=0 disable

Bit 2..0(ADPS2..0) menentukan clock ADC
Bit 2 Bit 1 Bit 0 Clock
0 0 0 XTAL / 2
0 0 1 XTAL / 2
0 1 0 XTAL / 4
0 1 1 XTAL / 8
1 0 0 XTAL /16
1 0 1 XTAL / 32
1 1 0 XTAL / 64
1 1 1 XTAL / 128

Register ADCL dan ADCH

merupakan 2 register tempat menampung hasil pembacaan ADC

untuk mengambil nilai nya gunakan ADCW(mode 10 bit) dan ADCH (mode 8 bit)

misal:
      adc_data=ADCH; //memasukkan nilai ADC mode 8bit ke variable adc_data


Saat akan menggunakan ADC, hal yang pertama harus di lakukan adalah ADC initialization / inisialisasi ADC (menentukan mode ADC).
contoh inisialisasi ADC:
// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
ADMUX=0x40;
ADCSRA=0x85;
SFIOR&=0xEF;
nyampe sini dulu ya  kenalan ma ADCnya,,,  ntar dismbung lagi ...  ngantuk berat nwech.....^_^

any questions?? post comment on this blog: http:\\avrku.blogspot.com
or send email to: zigan@ymail.com
CodeVisionAVR C Compiler is copyright by Pavel Haiduc, HP InfoTech s.r.l.
AVR is a registered trademark of Atmel Corporation




Selengkapnya...

Search

Entri Populer

 

Total Tayangan Halaman

Diberdayakan oleh Blogger.