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

Post on 07-May-2018

253 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

Transcript

ADC Analog-to-Digital Converter

Kuliah #9TCK210 Teknik Interface dan Peripheral

Aplikasi ADC

cabonauts.com

maximintegrated.com

enterprise-europe.iwt.be

Sistem terkomputerisasi

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

Pengolahan Sinyal

ADC dan DAC

ADC SAMPLED ANDQUANTIZED WAVEFORM

DAC RECONSTRUCTEDWAVEFORM

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

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)

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

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)

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

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

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 )

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

Metode Konversi

Successive-approximation

Parallel converter

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

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

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.

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

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

Arsitektur ADC di AVR

Distribusi Clock di AVR

● ADC has a dedicated clock domain (clk

ADC)

– reduce noise generated by digital circuitry

– gives more accurate ADC conversion results

Arsitektur ADC

ADC Auto Trigger Logic

ADC Prescaler

Diagram Pewaktuan ADC(Konversi Pertama, Mode Tunggal)

Waktu konversi: 25 cycle

Konversi Mode Tunggal

Waktu Konversi: 13 cycle (single-ended)

Konversi Auto-Triggered

Waktu konversi: 13.5 cycle

Free-Running Conversion

Masukan Analog dan Power

Hasil Konversi

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

Single-ended conversion

Differential conversion

ADMUX: Register Pemilihan MUX

● REFS[1:0]: memilih tegangan referensi

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

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

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

ADCSRA: Register Kontrol dan Status

Register Kontrol dan Status

ADPS[2:0]: ADC Prescaler Select Bit

SFIOR – Special FunctionIO Register

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

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

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}

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;}

Digital Termometer

● Sensor Temperatur LM35

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

Antarmuka Accelerometer 3 Sumbu● ATMega32 + Accelerometer mma7260 + LCD

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

Antarmuka Accelerometer 3 Sumbu

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

ADC Graph

top related