Top Banner
ADC Analog-to-Digital Converter Kuliah #9 TCK210 Teknik Interface dan Peripheral
43

ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

May 07, 2018

Download

Documents

vuonghanh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

ADC Analog-to-Digital Converter

Kuliah #9TCK210 Teknik Interface dan Peripheral

Page 2: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Aplikasi ADC

cabonauts.com

maximintegrated.com

enterprise-europe.iwt.be

Sistem terkomputerisasi

Page 3: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Pokok Bahasan● Konversi analog ke digital● Arsitektur ADC di AVR Atmega8/16/32● Register● Pemrograman● Aplikasi

Setelah mempelajari bab ini, mahasiswa akan mampu

● [C2] memahami prinsip ADC dan DAC

● [C5] mendesain mikrokomputer dengan antarmuka ADC untuk peripheral sensor suhu dan kelembaban udara

● [C5] mendesain mikrokomputer dengan antarmuka DAC untuk peripheral speaker

Page 4: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Pengolahan Sinyal

Page 5: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

ADC dan DAC

ADC SAMPLED ANDQUANTIZED WAVEFORM

DAC RECONSTRUCTEDWAVEFORM

Page 6: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

ADC: Konverter A/D

● Menghasilkan keluaran digital sesuai dengan nilai sinyal analog masukan relatif terhadap tegangan referensi

● Proses: sinyal analog --> digital

– Analog: amplitudo kontinyu, waktu kontinyu

– Digital: amplitudo diskrit, waktu diskrit

– Jumlah nilai diskrit terbatas: 2N , N=jumlah bit

ANALOGINPUT

DIGITALOUTPUT

RESOLUTIONN BITS

REFERENCEINPUT

Analog Input DIGITAL OUTPUT CODE = x (2N - 1) Reference Input

Page 7: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Proses Konversi● Proses konversi

– Pencuplikan (sampling)● Mengubah sinyal waktu kontinyu menjadi sinyal

waktu diskrit● Parameter: frekuensi sampling

– Kuantisasi● Mengubah sinyal amplitudo kontinyu menjadi

sinyal amplitudo diskrit● Parameter: jumlah representasi bit

– Pengkodean● Mengkodekan sinyal diskrit dalam representasi

binernya (digital)

Page 8: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

1. Pencuplikan● Merepresentasikan sinyal waktu kontinyu ke

dalam waktu diskritnya● Menentukan bandwidth sinyal tercuplik

(kriteria Nyquist)– Frekuensi sinyal Fs harus dari 1/2*Fsampling

agar tidak terjadi aliasing

DISCRETETIME SAMPLING

AMPLITUDEQUANTIZATION

y(t)

y(n)

y(n+1)

n-1 n n+1 n+3 ts

t

Page 9: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Bandwidth Nyquist & Aliasing

1 MHz 4 MHz

fsampling fsampling + fsignalfsampling - fsignal

signalpassband

3 MHz 5 MHz

fsignal

(FSIGNAL < ½ FSAMPLING)

1 MHz 4 MHz

fsampling fsampling + fsignalfsampling - fsignal

signalpassband

3 MHz 5 MHz

fsignal

(FSIGNAL < ½ FSAMPLING)

Page 10: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

2. Kuantisasi

● Merepresentasikan sebuah sinyal analog yang mempunyai resolusi tak terbatas (kontinyu) ke digital yang mempunyai resolusi terbatas

100

11

10

01

00

Analog0 1/4 1/2 3/4 1 = FS

1LSB

Any Analog Input in this Range Gives the Same Digital Output

Code

Page 11: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Relasi Ideal Konverter A/DD

IGIT

AL

OU

TP

UT

1 LSB

ANALOG INPUT

1/8 2/8 3/8 4/8 5/8 6/8 7/8

001

010

011

100

101

110

111

Page 12: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Spesifikasi DC● Transisi kode ADC

ideal tepat 1 LSB● Untuk N-bit ADC,

terdapat 2N kode● 1 LSB = FS/2N

● Untuk ADC 3-bit, FS=1Volt, 1 LSB=1V/8

● Tiap langkah berpusat di tiap 1/8 FS 0 0 1

1 1 1

1 1 0

1 0 1

1 0 0

0 1 1

0 1 0

0 0 0

1 / 8 7 / 83 / 45 / 81 / 23 / 81 / 40

A n a l o g I n p u t

Dig

ital O

utp

ut

1 L S B

A D C T r a n s f e r F u n c t i o n( I d e a l )

Page 13: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

3. Pengkodean Digital

● Mentranslasikan nilai analog terkuantisasi menjadi kode digital

● a/FS = d/M

a=nilai analog, FS=Vmax

M=jumlah langkah=2N

d=nilai digital

proportionality

Vmax = 7.5V

0V

1111

1110

0000

0010

0100

0110

1000

1010

1100

0001

0011

0101

0111

1001

1011

1101

0.5V

1.0V

1.5V

2.0V

2.5V

3.0V

3.5V

4.0V

4.5V

5.0V

5.5V

6.0V

6.5V

7.0V

Page 14: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Metode Konversi

Successive-approximation

Parallel converter

Page 15: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Resolusi ADC

● Merupakan perubahan tegangan analog terkecil yang menghasilkan perubahan 1 bit (=1 LSB)

– Jarak antara 2 level kuantisasi yang berdekatan

● Resolusi ADC: r = FS / 2N

● Sering dinyatakan langsung dalam bit

Page 16: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

ADC dan Sistem Sensor

● K dan B: rangkaian pengkondisi tranduser– K = pengali tegangan skalar

– B = tegangan bias untuk menempatkan tegangan di Vmin dan Vmax ADC

● V2,max = (V1,max * K) + B

V2,min = (V1,min * K) + B

Page 17: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Contoh Rangkaian Pengkondisi

● Sensor photodiode menyediakan tegangan 0V untuk intensitas cahaya terbesar dan -2.50V untuk intensitas cahaya terkecil. Hitung nilai K dan B untuk tranduser ini sehingga dapat mempunyai skala penuh di ADC dengan FS=5V dengan referensi ke GND.

Page 18: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

ADC di AVR ATMega16/32● 8 Channel ADC

Multiplexed– 8 Single-ended– 2 Differential with

Programmable Gain at 1x, 10x, or 200x

● 8/10 bit resolution● Variable Clock Speed● Various Reference

Voltage● Polling/Interrupt EOC

Page 19: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Fitur ADC di AVR

● 10-bit Resolution● 0.5 LSB Integral Non-linearity● ±2 LSB Absolute Accuracy● 13 - 260 µs Conversion Time● Up to 15 kSPS at Maximum Resolution● 8 Multiplexed Single Ended Input Channels● 7 Differential Input Channels● 2 Differential Input Channels with Optional Gain of 10x and 200x(1)● Optional Left adjustment for ADC Result Readout● 0 - VCC ADC Input Voltage Range● Selectable 2.56V ADC Reference Voltage● Free Running or Single Conversion Mode● ADC Start Conversion by Auto Triggering on Interrupt Sources● Interrupt on ADC Conversion Complete● Sleep Mode Noise Canceler

Page 20: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Arsitektur ADC di AVR

Page 21: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Distribusi Clock di AVR

● ADC has a dedicated clock domain (clk

ADC)

– reduce noise generated by digital circuitry

– gives more accurate ADC conversion results

Page 22: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Arsitektur ADC

Page 23: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

ADC Auto Trigger Logic

Page 24: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

ADC Prescaler

Page 25: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Diagram Pewaktuan ADC(Konversi Pertama, Mode Tunggal)

Waktu konversi: 25 cycle

Page 26: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Konversi Mode Tunggal

Waktu Konversi: 13 cycle (single-ended)

Page 27: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Konversi Auto-Triggered

Waktu konversi: 13.5 cycle

Page 28: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Free-Running Conversion

Page 29: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Masukan Analog dan Power

Page 30: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Hasil Konversi

● Setelah konversi selesai (ADIF=1), hasil konversi disimpan dalam register hasil (ADCL, dan ADCH)

Single-ended conversion

Differential conversion

Page 31: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

ADMUX: Register Pemilihan MUX

● REFS[1:0]: memilih tegangan referensi

● ADLAR: ADC Left Adjust Result (1: left; 0:right)

Page 32: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

MUX[4:0]: Pemilihan Kanal Input dan Gain

Lihat tabel 22-4 di datasheet AVR8/16/32 untuk daftar lengkap

Page 33: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

ADCSRA: Register Kontrol dan Status

Page 34: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Register Kontrol dan Status

Page 35: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

ADPS[2:0]: ADC Prescaler Select Bit

Page 36: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

SFIOR – Special FunctionIO Register

● ADTS[2:0]: ADC Auto Trigger Source

Page 37: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Pemrograman ADC

● Hanya 1 kanal ADC yang bisa dikonversikan dalam 1 waktu

– Memilih Prescaler ADC (pembagi frekuensi): set ADPS[2:0] di register ADCSRA

– Memilih masukan analog MUX[4:0] di register ADMUX

– Memilih sumber tegangan referensi REFS[1:0]

– Mengeset ADLAR

– Membaca hasil konversi dari ADCH dan ADCL

Page 38: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Inisialisasi ADC

//*************************************************************//InitADC: initialize analog-to-digital converter//*************************************************************void InitADC( void){ ADMUX = 0; //Select channel 0 ADCSRA = 0xC3; //Enable ADC & start 1st dummy conversion //Set ADC module prescalar to 8 critical for //accurate ADC results while (!(ADCSRA & 0x10)); //Check if conversation is ready ADCSRA |= 0x10; //Clear conv rdy flag - set the bit}

Page 39: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Pembacaan Data ADC//*************************************************************//ReadADC: read analog voltage//*************************************************************unsigned int ReadADC(unsigned char chan){ unsigned int result, hvoltage, lvoltage; //weighted binary voltage ADMUX = channel; //Select channel ADCSRA |= 0x43; // Start conversion, Set ADC module // prescalar to 8 critical for accurate results

while (!(ADCSRA & 0x10)); //Check if converstion is ready

ADCSRA |= 0x10; //Clear Conv rdy flag – set the bit hvoltage = ADCL; lvoltage = (ADCH << 8);

result = hvoltage | lvoltage; return result;}

Page 40: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Digital Termometer

● Sensor Temperatur LM35

http://extremeelectronics.co.in/avr-tutorials/interfacing-temperature-sensor-lm35/

Page 41: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Antarmuka Accelerometer 3 Sumbu● ATMega32 + Accelerometer mma7260 + LCD

http://extremeelectronics.co.in/avr-tutorials/interfacing-mma7260-triple-axis-accelerometer-with-atmega32-avr-tutorial/

Page 42: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

Antarmuka Accelerometer 3 Sumbu

Page 43: ADC Analog-to-Digital Converter Bahasan Konversi analog ke digital Arsitektur ADC di AVR Atmega8/16/32 Register Pemrograman Aplikasi Setelah mempelajari bab ini, mahasiswa akan mampu

● http://extremeelectronics.co.in/tools/visualize-adc-data-on-pc-screen-using-usart-avr-project/

ADC Graph