The ATmega16 memiliki 10 - bit berturut pendekatan ADC .
ADC terhubung ke 8
-channel Analog Multiplexer yang memungkinkan 8 input tegangan berakhir tunggal
dibangun dari pin Port A. input tegangan berakhir tunggal merujuk ke 0V ( GND )
. Perangkat ini juga mendukung 16 diferensial kombinasi input tegangan . Dua
dari input diferensial ( ADC1 , ADC0 dan ADC3 , ADC2 ) dilengkapi dengan gain
diprogram , memberikan langkah amplifikasi 0 dB ( 1x ) , 20 dB ( 10x ) , atau
46 dB ( 200x ) pada tegangan input diferensial sebelum A / D konversi . Tujuh
diferensial saluran input analog berbagi negatif umum terminal ( ADC1 ) ,
sedangkan setiap masukan ADC lainnya dapat dipilih sebagai terminal input
positif . Jika 1x atau keuntungan 10x digunakan , resolusi 8 - bit dapat
diharapkan . Jika 200x gain yang digunakan, resolusi 7 - bit dapat diharapkan .
ADC berisi sampel dan sirkuit Tahan yang menjamin bahwa tegangan
input ke ADC adalah diadakan pada tingkat yang konstan selama konversi . Sebuah
diagram blok dari ADC ditunjukkan pada Gambar 98 . ADC memiliki pasokan
tegangan analog pin yang terpisah , AVCC . AVCC tidak harus berbeda lebih dari
± 0.3V dari VCC . Lihat paragraf " ADC Noise Canceler " pada halaman
211 tentang bagaimana untuk menghubungkan ini pin . Tegangan referensi internal
dari nominal 2.56V atau AVCC disediakan On-chip . Tegangan referensi dapat
dipisahkan secara eksternal pada pin AREF oleh kapasitor untuk kinerja noise
yang lebih baik .
operasi
ADC mengkonversi tegangan input analog ke nilai digital 10 - bit
melalui pendekatan berurutan . Nilai minimum merupakan GND dan nilai maksimum
merupakan tegangan pada pin AREF dikurangi 1 LSB . Opsional, AVCC atau tegangan
referensi 2.56V internal dapat terhubung ke pin AREF dengan menulis ke bit
REFSn di ADMUX Register . internal tegangan referensi demikian dapat dipisahkan
oleh kapasitor eksternal pada pin AREF untuk meningkatkan kekebalan kebisingan
. Saluran analog input dan gain diferensial dipilih dengan menulis ke bit MUX
ADMUX . Ada pin masukan ADC , serta GND dan tegangan referensi bandgap tetap,
bisa terpilih sebagai masukan berakhir tunggal untuk ADC . Sebuah pilihan pin
masukan ADC dapat dipilih sebagai input positif dan negatif dengan gain penguat
diferensial . Jika saluran diferensial dipilih , tahap gain diferensial
menguatkan perbedaan tegangan antara masukan yang dipilih pasangan channel oleh
faktor keuntungan yang dipilih . Nilai ini diperkuat kemudian menjadi input
analog ke ADC . Jika saluran berakhir tunggal digunakan , penguat gain dilewati
sama sekali . ADC diaktifkan dengan menetapkan ADC Enable bit , ADEN di ADCSRA
. Tegangan referensi dan pilihan saluran masukan tidak akan berlaku sampai ADEN
diatur . The ADC tidak mengkonsumsi daya ketika ADEN dibersihkan , sehingga
dianjurkan untuk mematikan ADC sebelum memasuki modus penghematan daya tidur .
The ADC menghasilkan hasil 10 - bit yang disajikan dalam ADC
data register , ADCH dan ADCL . Secara default , hasilnya disajikan benar
disesuaikan , tapi opsional dapat disajikan kiri disesuaikan dengan mengatur
bit ADLAR di ADMUX . Jika hasilnya dibiarkan disesuaikan dan tidak lebih dari 8
- bit presisi diperlukan , itu sudah cukup untuk membaca ADCH . Jika tidak,
ADCL harus dibaca terlebih dahulu, kemudian ADCH , untuk memastikan bahwa isi
dari data Register milik konversi yang sama . Setelah ADCL dibaca , ADC akses
ke Register data diblokir . Ini berarti bahwa jika ADCL telah dibaca , dan
konversi selesai sebelum ADCH adalah membaca, mendaftar tidak diperbarui dan
hasil dari konversi hilang . Ketika ADCH dibaca , ADC akses ke ADCH dan ADCL
Register diaktifkan kembali . ADC memiliki interrupt sendiri yang dapat dipicu
ketika konversi selesai . ketika ADC akses ke Register Data dilarang antara
pembacaan ADCH dan ADCL , interrupt akan
memicu bahkan jika hasilnya hilang .
Mulai Konversi suatu
Sebuah konversi tunggal dimulai dengan menulis satu logis untuk
ADC Mulai Konversi bit , ADSC . Bit ini tetap tinggi selama konversi sedang
berlangsung dan akan dihapus oleh hardware ketika konversi selesai . Jika
saluran data yang berbeda yang dipilih sementara konversi sedang berlangsung ,
ADC akan menyelesaikan konversi saat sebelum melakukan perubahan saluran. Atau
, konversi dapat dipicu secara otomatis oleh berbagai sumber . Auto Memicu
diaktifkan dengan menetapkan Auto Pemicu ADC Aktifkan bit , ATanggal di ADCSRA
. Pemicu sumber dipilih dengan menetapkan Pemicu ADC Pilih bit , ADTS di SFIOR
( lihat keterangan dari bit ADTS untuk daftar sumber-sumber pemicu ) . Ketika
tepi positif terjadi pada sinyal pemicu yang dipilih , ADC prescaler direset
dan konversi dimulai . Ini menyediakan metode untuk memulai konversi pada
interval yang tetap . Jika sinyal pemicu masih diatur bila konversi selesai ,
konversi baru tidak akan dimulai . Jika tepi positif lain terjadi pada sinyal
pemicu selama konversi , tepi akan diabaikan . Perhatikan bahwa Bendera
Interrupt akan ditetapkan bahkan jika interupsi tertentu dinonaktifkan atau
mengaktifkan interrupt global bit dalam sreg dihapus . Sebuah konversi sehingga
dapat dipicu tanpa menyebabkan interupsi . Namun, Bendera Interrupt harus
dibersihkan untuk memicu konversi baru di acara interrupt berikutnya .
Menggunakan Interrupt
Flag ADC sebagai sumber pemicu membuat ADC memulai konversi baru segera setelah
konversi berlangsung telah selesai. ADC kemudian beroperasi dalam Free Running
modus, terus sampel dan memperbarui data ADC Register. Konversi pertama harus
dimulai dengan menulis satu logis untuk bit ADSC di ADCSRA. Dalam mode ini ADC
akan melakukan konversi berturut terlepas dari apakah Interrupt Flag ADC, ADIF
dihapus atau tidak. Jika Auto Memicu diaktifkan, konversi tunggal dapat dimulai
dengan menulis ADSC di ADCSRA satu. ADSC juga dapat digunakan untuk menentukan
apakah konversi sedang berlangsung. The ADSC bit akan dibaca sebagai satu
selama konversi, terlepas dari bagaimana konversi dimulai
Prescaling
dan Konversi Waktu
Secara default, pendekatan sirkuit berturut membutuhkan frekuensi clock input antara 50 kHz dan 200 kHz untuk mendapatkan resolusi maksimum. Jika resolusi yang lebih rendah dari 10 bit yang dibutuhkan, jam masukan frekuensi ke ADC dapat lebih tinggi dari 200 kHz untuk mendapatkan sample rate yang lebih tinggi. Modul ADC berisi prescaler, yang menghasilkan sebuah ADC frekuensi clock diterima dari setiap frekuensi CPU di atas 100 kHz. Prescaling diatur oleh bit ADPs di ADCSRA. Prescaler mulai menghitung dari saat ADC diaktifkan dengan mengatur bit ADEN di ADCSRA.Prescaler terus berjalan selama bit ADEN diatur, dan terus reset ketika ADEN rendah.Saat melakukan konversi berakhir tunggal dengan menetapkan bit ADSC di ADCSRA, konversi dimulai di tepi terbit berikut siklus clock ADC. Lihat "Differential Laba Saluran" pada halaman 209 untuk detail diferensial waktu konversi.
Sebuah konversi normal memakan waktu 13 siklus clock ADC. Konversi pertama setelah ADC diaktifkan (ADEN di ADCSRA diatur) membutuhkan waktu 25 clock cycle ADC untuk menginisialisasi sirkuit analog. Sebenarnya sampel-dan-terus berlangsung 1,5 jam siklus ADC setelah dimulainya konversi normal dan 13,5 siklus clock ADC setelah dimulainya konversi pertama. Ketika konversi selesai, hasilnya ditulis ke ADC data register, dan ADIF diatur. Dalam mode konversi tunggal, ADSC dibersihkan secara bersamaan. Perangkat lunak kemudian dapat menetapkan ADSC lagi, dan konversi baru akan dimulai pada hari pertama naik ADC tepi jam. Ketika Auto Memicu digunakan, prescaler adalah reset ketika acara memicu terjadi. Ini menjamin penundaan tetap dari peristiwa pemicunya awal konversi. Dalam mode ini, sampel-dan-terus
berlangsung 2 siklus clock ADC setelah tepi terbit pada sumber sinyal pemicu. Tiga siklus clock CPU tambahan digunakan untuk sinkronisasi logika. Saat menggunakan modus Diferensial, bersama dengan Auto memicu dari sumber selain Konversi ADC Complete, setiap konversi akan membutuhkan 25 jam ADC. Hal ini karena ADC harus dinonaktifkan dan diaktifkan kembali setelah setiap konversi. Dalam modus Free Running, konversi baru akan dimulai segera setelah konversi selesai, sementara ADSC tetap tinggi. Untuk ringkasan kali konversi, lihat Tabel 81.
No comments:
Post a Comment