PROYEK AKHIR
RANCANG BANGUN SISTEM KONTROL DAN MONITORING SUHU RUANGAN VIA TELEPON (Informasi Suhu Ruangan Menggunakan Mikrokontroller AT89C51)
Ratna Purwani Wulandari NRP. 7203.030.029
Dosen Pembimbing: Ir. Prima Kristalina, MT NIP. 131 843 904
Akuwan Saleh, A.Md, SST NIP. 131 831 467
055 257
JURUSAN TELEKOMUNIKASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA SURABAYA 2006
RANCANG BANGUN SISTEM KONTROL DAN MONITORING SUHU RUANGAN VIA TELEPON (Informasi Suhu Ruangan Menggunakan Mikrokontroller AT89C51) Oleh: RATNA PURWANI WULANDARI 7203.030.029 Proyek Akhir ini Diajukan Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Ahli Madya (A.Md.) di Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya Disetujui oleh Tim Penguji Proyek Akhir:
Dosen Pembimbing:
1. Ir. Anang Budikarso, MT NIP. 131 793 744
1. Ir. Prima Kristalina, MT NIP. 131 843 904
2. Mike Yuliana, ST NIP. 132 300 242
2. Akuwan Saleh, A.Md, SST NIP. 131 831 467
3. Amang Sudarsono, ST NIP. 132 300 371
Mengetahui: Ketua Jurusan Telekomunikasi
Drs. Miftahul Huda, MT NIP. 132 055 257 ii
ABSTRAK Pada proyek akhir ini dibuat suatu alat yang dapat digunakan untuk memonitor dan mengontrol suhu di suatu ruangan. Dimana interface ini akan diaplikasikan dalam beberapa ruangan yang membutuhkan pengontrol suhu misalnya laboratorium dan ruangan sentral. Proyek akhir ini menitikberatkan pada kinerja sensor suhu dan relay yang terhubung pada fan. Sensor suhu menangkap informasi suhu ruangan dan mengirimkannya ke mikrokontroller. Mikrokontroller akan bekerja secara otomatis menghubungi PC yang telah dilengkapi dengan Dialogic Card melalui komunikasi serial dan mengaktifkan timer yang terhubung dengan relay jika suhu yang terukur berada di atas level normal. PC yang dilengkapi dengan Dialogic Card akan meneruskan informasi suhu ruangan ke saluran telepon. Dari telepon inilah kita dapat memilih menu untuk mengontrol atau memonitor suhu ruangan. Adapun mikrokontroller yang digunakan adalah microcontroller AT89C51. Kata kunci – sensor suhu, relay, microcontroller AT89C51
iii
ABSTRACT This final project is present to made an interface that can be used to supervise a condition in some room which need temperature controller such as laboratory and central room. The temperature information captured by temperature sensor and will be send to microcontroller. This interface will work automatically contact the PC through serial communication and activate the timer which in circuit by relay (which connected with fan) if temperature measured reside in for level normal. PC which support Dialogic Card will distribute it to channel phone. From this telephone we can choose the menu to control or monitor the temperature. This final project use microcontroller AT89C51. Key words - temperature sensor, relay, microcontroller AT89C51.
iv
KATA PENGANTAR Dengan mengucap puji syukur kepada Allah SWT, atas limpahan rahmat dan hidayah-Nya, serta perlindungan, pertolongan dan ridho-Nya kepada kami sehingga kami dapat menyelesaikan proyek akhir ini tepat pada waktunya, serta tak terlupakan iringan salam dan sholawat bagi junjungan kami nabi besar Muhammad SAW. Dengan pengerahan segenap usaha kami akhirnya kami dapat menyelesaikan proyek akhir kami yang berjudul : RANCANG BANGUN SISTEM KONTROL DAN MONITORING SUHU RUANGAN VIA TELEPON (Informasi Suhu Ruangan Menggunakan Mikrokontroller AT89C51) tepat pada waktunya. Proyek akhir ini dibagi dalam dua sub judul, yaitu: Informasi Suhu Ruangan Menggunakan Mikrokontroller AT89C51 oleh Ratna Purwani Wulandari. Block Voice Processing Board Type Dialog/4 oleh Kartika Budiharti. Proyek Akhir ini adalah kewajiban bagi setiap mahasiswa Politeknik Elektronika Negeri Surabaya ITS dengan tujuan untuk memenuhi persyaratan untuk memperoleh kelulusan pada program Diploma III Jurusan Teknik Telekomunikasi di Politeknik Elektronika Negeri Surabaya ITS. Dengan terselesaikannya buku laporan proyek akhir ini, kami berharap semoga buku ini dapat membawa manfaat pembaca umumnya dan juga bagi kami pada khususnya serta semua pihak yang berkepentingan. Kami juga berharap agar proyek akhir ini dapat dikembangkan lebih lanjut sehingga dapat benar-benar digunakan sebaik-baiknya untuk mendukung perkembangan ilmu pengetahuan. Kami menyadari bahwa kami adalah manusia biasa yang tidak luput dari kesalahan dan kekurangan. Untuk itu, kritikan dan saran yang bersifat membangun kami harapkan untuk perbaikan selanjutnya. Akhirnya tak lupa kami ucapkan terima kasih kepada semua pihak yang telah memberikan bantuan dan dukungan hingga terselesaikannya proyek akhir ini. Surabaya, Agustus 2006 Penulis
v
UCAPAN TERIMA KASIH Dengan segala kerendahan hati, pada kesempatan yang berbahagia ini saya menyampaikan terima kasih yang sebesar-besarnya kepada semua pihak yang telah membantu saya dalam menyelesaikan proyek akhir ini, sehingga saya dapat menyelesaikan studi saya di Politeknik Elektronika Negeri Surabaya. Ucapan terima kasih saya tujukan kepada : 1.
Allah SWT, atas semua anugerah dan pertolongan yang tak terkira dalam hidupku, All the things I do is always for Allah SWT. Serta tidak terlupakan Nabi Besar Muhammad SAW teriring salam dan sholawat atas Beliau dan keluarganya. 2. Seluruh keluarga, Bapak dan Ibu, yang selalu sayang dan percaya dengan aku, yang selalu mendoakan dan mendukung aku. 3. Bapak Dr. Ir. Titon Dutono, M.Eng selaku Direktur Politeknik Elektronika Negeri Surabaya 4. Bapak Drs. Miftahul Huda, MT selaku Ketua Jurusan Telekomunikasi. 5. Bapak Akuwan Saleh, A.Md, SST serta Ibu Ir. Prima Kristalina, MT selaku pembimbing yang telah sabar, terimakasih atas semua masukan dan bimbingan yang telah diberikan serta mohon maaf jika ada salah. 6. Seluruh Dosen pengajar dan Asisten Dosen, terima kasih atas kesabaran dan transfer ilmunya selama ini. 7. All community of Telkom A atas semangat, bantuan dan dukungannya. 8. Serta semua pihak yang telah membantu yang tidak dapat saya sebutkan satu-persatu. Harapan saya, semoga keikhlasan dalam membantu hingga terselesaikannya proyek akhir ini mendapatkan balasan pahala dari Allah SWT. Amien.
vi
DAFTAR ISI HALAMAN JUDUL……………………………………………… LEMBAR PENGESAHAN ………………………………..……... ABSTRAK………………………………………………………… ABSTRACT…...…………………………………………………... KATA PENGANTAR..……………………………………………. UCAPAN TERIMA KASIH………………………………………. DAFTAR ISI.…………………………………………………..….. DAFTAR GAMBAR……………………………………………… DAFTAR TABEL………………………………………………….
i ii iii iv v vi vii ix x
BAB 1. PENDAHULUAN………………………………………… 1.1. LATAR BELAKANG……………...…………………. 1.2. PERUMUSAN MASALAH………..………………..... 1.3. BATASAN MASALAH….………..…………………... 1.4. TUJUAN DAN MANFAAT…………………………... 1.5. METODOLOGI ………………….……………………. 1.6. SISTEMATIKA PEMBAHASAN..……………………
1 1 1 2 2 2 3
BAB 2. DASAR TEORI…………………………………………... 2.1. UMUM……………………………………………….... 2.2. Sensor Temperatur…………........................................... 2.3. Analog to Digital Converter…………………………… 2.3.1. ADC 0804……………………………………….. 2.4. DST-51 2.4.1. Mode-mode DST-51............................................. 2.4.2. Peta Memori…………………………………...... 2.4.3. Alamat-alamat lain………………….................... 2.4.4. Peripheral Port Interface……………………….... 2.4.5. Mikrokontroller AT89C51.................................... 2.5. Komunikasi Data Serial………………………………... 2.5.1. IC MAX 232 dan RS-232……………………….. 2.5.2. Konfigurasi Port Serial………………………….. 2.6. Relay……………………………………………………
5 5 5 6 6 7 8 9 11 11 12 13 14 15 17
BAB 3. PERANCANGAN DAN PEMBUATAN SISTEM……... 3.1. Umum………………………………………………….. 3.2. Perencanaan Alat………………………………………. 3.2.1. Rangkaian Catu Daya…………………………..
19 19 23 23
vii
3.2.2. Rangkaian Sensor Suhu………………………… 3.2.3. Rangkaian ADC0804............................................. 3.2.4. Rangkaian Sakelar 1 dan 2……………………… 3.3. Komunikasi antara mikrokontroller dan PC.................... 3.4. DST-51………………………………………………… 3.4.1. Instalasi Software Pada PC……………………… 3.4.2. Instalasi Hardware………………………………. BAB 4. PENGUJIAN DAN PENGUKURAN ALAT…………….. 4.1. Pendahuluan……………………………………………. 4.2. Tujuan Pengujian………………………………………. 4.3. Peralatan……………………………………………….. 4.4. Pengujian Rangkaian Catu Daya………………………. 4.5. Pengujian Rangkaian Suhu LM35……………………... 4.6. Pengujian Rangkaian ADC0804……………………….. 4.7. Pengujian Rangkaian Sakelar………………………….. 4.8. Pengujian dan Pengukuran Alat Secara Keseluruhan...... BAB 5. PENUTUP………………………………………………… 5.1. Kesimpulan…………………………………………….. 5.2. Saran…………………………………………………… DAFTAR PUSTAKA……………………………………………… LAMPIRAN………………………………………………………..
viii
23 24 26 28 29 30 31 33 33 33 33 35 35 36 37 38 39 39 39 41 43
DAFTAR GAMBAR Gambar 2.1 Gambar 2.2 Gambar 2.3 Gambar 2.4 Gambar 2.5 Gambar 2.6 Gambar 2.7 Gambar 2.8 Gambar 2.9 Gambar 3.1 Gambar 3.2 Gambar 3.3 Gambar 3.4 Gambar 3.5 Gambar 3.6 Gambar 3.7 Gambar 3.8 Gambar 3.9 Gambar 3.10 Gambar 3.11 Gambar 3.12 Gambar 3.13 Gambar 4.1
Bentuk fisik IC LM35............................................ Konfigurasi pin ADC 0804.................................... Alokasi memori internal pada DST-51................... Alokasi memori eksternal pada DST-51………… Konfigurasi pin AT89C51……………………….. Pengiriman huruf ‘A’ tanpa bit paritas................... Level tegangan RS-232 pada pengiriman huruf ‘A’ tanpa bit paritas....................................................... IC MAX 232........................................................... Konektor serial DB-9 pada bagian belakang CPU..... .................................................................. Blok diagram sistem secara keseluruhan................ Flowchart sistem aplikasi program monitoring dari PC.................................................................... Flowchart sistem aplikasi dari mikrokontroler ke operator (keadaan tidak normal)............................ Rangkaian catu daya…………………………….. Rangkaian sensor suhu…………………………... Rangkaian clock ADC0804…………………….... Rangkaian ADC0804……………………………. Rangkaian sakelar 1 (untuk ruangan 1).................. Rangkaian sakelar 2 (untuk ruangan 2).................. Open Workspace………………………………… JFE dengan tools-toolsnya……………………….. Menu File Baru…………………………………... Indikasi bahwa DST-51 telah berkomunikasi dengan PC………………………………………... Pengukuran Rangkaian Catu Daya……………….
ix
5 7 10 11 13 14 15 15 16 19 21 22 23 24 25 25 27 27 30 30 31 31 34
DAFTAR TABEL Tabel 2.1 Tabel 2.2 Tabel 4.1 Tabel 4.2 Tabel 4.3 Tabel 4.4 Tabel 4.4
Alamat PPI........................................................................ Konfigurasi pin dan nama sinyal konektor serial.............. Hasil Pengukuran Rangkaian Catu Daya………………... Data Pengukuran IC LM35…………………………….... Data hasil pengujian ADC 0804…………………………. Data hasil pengujian Relay................................................. Data hasil pengujian sistem................................................
x
11 16 34 35 36 37 38
BAB 1 PENDAHULUAN 1.1
LATAR BELAKANG Memantau kondisi suhu suatu ruangan sehari 24 jam non stop merupakan hal yang tidak mungkin dilakukan oleh manusia tanpa bantuan alat, apalagi dengan kesibukan yang dialami setiap hari. Padahal kestabilan suhu pada suatu ruangan (misal ruangan sentral atau suatu laboratorium) sangat diperlukan. Hal ini untuk menjaga kinerja dari peralatan yang ada di dalamnya supaya dapat bekerja secara optimal. Agar pemilik ruangan dapat mengatur berapakah suhu yang diinginkan, serta memonitor suhu saat ini meskipun pemilik ruangan tersebut tidak berada ditempat, maka dibutuhkan suatu alat yang dapat mengontrol dan memonitor suhu ruangan tersebut secara otomatis dari jarak jauh. Dengan semakin pesatnya perkembangan teknologi saat ini, hal itu sangat mungkin dilakukan. Dengan memanfaatkan sensor suhu yang ada di pasaran, kita dapat membuat alat yang dapat memberikan informasi suhu secara real time. Informasi yang ditangkap oleh sensor suhu tersebut digunakan sebagai input dari rangkaian mikrokontroller AT89C51. Output dari rangkaian mikrokontroller ini kemudian diteruskan pada PC yang terhubung ke saluran telepon setelah melalui komunikasi serial RS-232. Dialogic Card yang telah terpasang pada personal komputer bisa diaplikasikan untuk berbagai informasi diantaranya untuk kontrol dan monitoring suhu ruangan. Dialogic Card yang berfungsi sebagai interface antara sistem telepon dengan komputer, dijadikan pilihan dalam proyek akhir ini sehingga nantinya kita tinggal mendial nomor telepon tertentu dan bisa langsung mengontrol kinerja perangkat keras atau mendapatkan informasi secara real time. 1.2
PERUMUSAHAN MASALAH Permasalahan yang ditangani dari pembuatan proyek akhir ini adalah bagaimana agar dapat mengontrol dan memonitor suhu suatu ruangan dengan menggunakan saluran telepon sebagai media transmisinya. Masalah yang harus diperhatikan adalah : 1. Sensitifitas dari sensor yang digunakan. 2. Ketepatan pembacaan ADC.
1
2 3. Integrasi antara blok mikrokontroller dan blok telepon. 1.3
BATASAN MASALAH Permasalahan pada proyek akhir ini dibatasi pada : 1. penyalaan kipas (fan) yang ada pada ruangan secara otomatis atau melalui perintah dari telepon. 2. memonitor suhu melalui saluran telepon. 3. menggunakan bahasa pemrograman assembly.
1.4
TUJUAN DAN MANFAAT Tujuan dari proyek akhir ini adalah untuk menciptakan suatu alat yang dapat digunakan untuk mengontrol dan memonitor suhu ruangan secara real-time dengan menggunakan mikrokontroller AT89C51 dan memanfaatkan Dialogic Card yang dapat dimanfaatkan untuk berbagai aplikasi diantaranya kontrol dan monitoring suhu ruangan melalui dial telepon. Sehingga sekalipun antara pemilik ruangan dan ruangan letaknya berjauhan, sistem kontrol dan monitoring suhu tetap dapat berjalan dengan hanya mendial dari telepon rumah maupun telepon umum. Hasil dari proyek akhir ini diharapkan dapat bermanfaat untuk mengetahui kondisi suhu suatu ruangan dimanapun kita berada. 1.5
METODOLOGI Untuk menyelesaikan proyek akhir pada bagian mikrokontroller ini, dilakukan langkah-langkah sebagai berikut: ♦ Mempelajari prinsip kerja dasar dari sistem pengontrolan suhu, yang dilanjutkan dengan pembelajaran tentang karakteristik piranti masukan (sensor suhu), pengolahan sinyal masukan, mikrokontroller AT89C51, relay dan komunikasi serial. ♦ Merencanakan dan membuat peralatan yang diperlukan oleh sistem perangkat keras. ♦ Membuat program pendeteksi suhu ruangan, program serial, serta program kontrol relay. ♦ Mengujicoba tiap subsistem perangkat keras, dilanjutkan dengan integrasi antar subsistem dan pengujian hasil integrasi, diteruskan dengan integrasi dan pengujian hasil integrasi antar sistem perangkat lunak dan perangkat keras. ♦ Menganalisa dan menyimpulkan hasil-hasil simulasi, serta memberi saran bila proyek akhir ini dikembangkan lebih lanjut. ♦ Menyusun buku laporan proyek akhir.
3 1.6
SISTEMATIKA PEMBAHASAN Buku laporan proyek akhir ini terdiri dari 5 (lima) bab, dimana masing-masing bab mempunyai kaitan satu sama lain, yaitu: BAB 1: memberikan latar belakang tentang permasalahan, tujuan, masalah dan batasan masalah yang dibahas dalam proyek akhir ini. BAB 2: memberikan dasar teori untuk menunjang penyelesaian masalah dalam proyek akhir ini. Teori dasar yang diberikan meliputi: sensor yang dipakai, ADC 0804, mikrokontroller AT89C51, komunikasi data serial, relay, dan hal lain yang diperlukan dalam pembuatan proyek akhir ini. BAB 3: menguraikan tentang perencanaan dan implementasi dari sistem yang dibangun, yang meliputi proses dari pembuatan catu daya rangkaian, pendeteksian suhu dari sensor, proses pengiriman informasi, hingga proses kontrol dan monitoring melalui telepon. BAB 4: berisi tentang analisa dari hasil pengujian sistem yang meliputi pengintegrasian perangkat keras (hardware) dan perangkat lunak (software), serta proses kerja dari sistem yang dibuat. BAB 5: memberi kesimpulan tentang hasil yang telah diperoleh dan saran yang selayaknya dilakukan bila proyek akhir ini dilanjutkan.
4
***** Halaman Ini Sengaja Dikosongkan*****
BAB 2 DASAR TEORI 2.1
UMUM Masalah yang ditangani dalam proyek akhir ini adalah membuat suatu interface yang dapat mengontrol dan memonitoring suhu suatu ruangan secara real time. Pada bab ini akan diberikan teori dasar yang melandasi permasalahan dan penyelesaian dari proyek akhir ini. Teori dasar yang diberikan meliputi: mikrokontroller AT89C51, sensor suhu yang digunakan yaitu LM35, relay, serta komunikasi serial menggunakan Max RS-232.
2.2
SENSOR TEMPERATUR Sensor suhu ( temperatur ) pada proyek akhir ini menggunakan LM35, dimana output dari LM35 ini dapat memberikan output 8-bit data yang menyatakan kondisi perubahan dari suhu lingkungan. Setiap terjadi perubahan suhu maka akan terjadi perubahan data output yang dihasilkan, dimana perubahan tersebut berupa perbedaan tegangan yang dihasilkan.[3] LM35 sebagai alat deteksi temperatur memiliki karakteristik sebagai berikut :[6] 1. Bekerja pada rating tegangan 4V s/d 30V. 0
0
2. Pembacaan temperatur berkisar antara -55 C s/d 150 C . 0
3. Dengan kenaikan temperatur 1 C maka tegangan output akan naik sebesar 10 mV. 4. Memiliki arus drain kurang dari 60 uA.
Gambar 2.1: Bentuk fisik IC LM35.
5
6 2.3
ANALOG TO DIGITAL CONVERTER (ADC) Sistem mikrokontroller hanya dapat mengolah data dalam bentuk biner saja, atau lebih sering disebut besaran digital, oleh sebab itu setiap data analog yang akan diproses oleh mikrokontroller harus diubah terlebih dahulu kedalam bentuk kode biner (digital). Pengubahan data analog ke bentuk biner ditangani oleh piranti ADC.[3] Tegangan masukan ADC didapatkan dari transducer. Transducer adalah pengubah besaran kontinyu, dalam hal ini temperatur, menjadi tegangan listrik. Tegangan listrik yang dihasilkan oleh transducer yang berubah secara kontinyu pada suatu range tertentu disebut tegangan analog, dan tegangan analog ini diubah oleh ADC menjadi bentuk digital yang sebanding dengan tegangan analognya.[3] Ada tiga karakteristik yang perlu diperhatikan dalam pemilihan komponen ADC, antara lain : • Resolusi Merupakan spesifikasi terpenting untuk ADC, yaitu jumlah langkah dari sinyal skala penuh yang dapat dibagi, dan juga ukuran dari langkah-langkah, dinyatakan dalam jumlah bit yang ada dalam satu kata (digital word), ukuran LSB (langkah terkecil) sebagai persen dari skala penuh atau dapat juga LSB dalam miliVolt (untuk skala penuh yang dihasilkan).[3] • Akurasi Adalah jumlah dari semua kesalahan, misalnya kesalahan non linieritas, skala penuh, skala nol, dan lain-lain. Dapat juga menyatakan perbedaan antara tegangan input analog secara teoritis yang dibutuhkan untuk menghasilkan suatu kode biner tertentu terhadap tegangan input nyata yang menghasilkan tegangan kode biner tersebut.[3] • Waktu konversi Adalah waktu yang dibutuhkan untuk mengubah setiap sampel ke bentuk digital, atau yang diperlukan untuk menyelesaikan suatu konversi.[3] 2.3.1 ADC 0804 Rangkaian ADC 0804 ditujukan untuk mengubah tegangan analog yang berasal dari input analog menjadi bentuk digital 8 bit. ADC ini memiliki 20 kaki dengan menggunakan teknik konversi successive approximation. ADC 0804 ini mempunyai range tegangan 0 Volt sampai dengan 5 Volt dan mempunyai dua masukan yaitu Vin = Vin(+) – Vin(-), sehingga untuk keperluan ini maka Vin(-) harus digroundkan.[2]
7
Gambar 2.2 : Konfigurasi pin ADC 0804 Jadi secara umum karakteristik dari ADC 0804 adalah sebagai berikut : a. Dapat diinterfacekan dengan mikroprosesor atau dapat dioperasikan secara terpisah. b. Logic input dan output dapat dioperasikan dengan level tegangan. c. Dapat beroperasi dengan (tegangan referensi) sebesar 2.5 Volt.[2] 2.4
DST-51 DST-51 adalah sebuah sistem berbasis mikrokontroler 8951 yang sangat ringkas di mana sistem ini dapat digunakan untuk pengembangan aplikasi (development system), aplikasi siap pakai (stand alone) dan prototype single chip system.[4] DST-51 dirancang sebagai sistem yang sangat universal sehingga user dapat merancang berbagai macam aplikasi hanya dengan merubah isi program dan menambahkan interface pendukung bila diperlukan, layaknya sebuah PC. Apabila user ingin meng-aplikasikannya menjadi mesin faksimil misalnya, hanya dengan menambahkan sebuah modem dan program faksimil maka PC tersebut dapat berfungsi sebagai mesin faksimil demikian pula dengan DST-51, apabila user ingin menga-aplikasikannya menjadi jam digital misalnya, hanya dengan menambahkan sebuah modul interface RTC-1287, sebuah LCD dan menambahkan program di dalamnya maka DST-51 dapat berfungsi sebagai jam digital atau dengan menambahkan sebuah modul interface IR-8510 dan KP-43865 dan menambahkan program maka DST-51 akan berfungsi sebagai infrared remote control. [4]
8 2.4.1 Mode-mode DST-51 Secara garis besar DST-51 terdiri dari 3 buah mode di mana ketiga mode tersebut terpecah menjadi beberapa mode lagi. Adapun mode-mode tersebut adalah sebagai berikut : 1. Mode Monitor Mode Monitor hanya dapat dilakukan pada saat DST-51 terhubung dengan PC melalui serial port. Program yang bekerja pada saat sistem direset melalui PC adalah program DDT-51 Debugger Tools yang ada pada Flash PEROM AT89C51 di mana program ini akan menunggu perintah-perintah yang dikirimkan oleh PC seperti download, edit ataupun eksekusi program yang didownload.[4] Mode ini digunakan untuk masa perancangan software di mana perancangan program dan proses download program dilakukan berulang kali dari PC (Personal Computer) termasuk mereset sistem. Pada mode ini, user dapat melihat dan meng-edit isi memori baik memori eksternal (AT28C64) maupun memori internal (Internal RAM 89C51) serta melakukan proses debug di mana jalannya program dapat dilakukan secara step by step.[4] 2. Mode Memori Eksternal Mode ini berjalan apabila sinyal reset berasal dari Power ON Reset di mana program yang dijalankan adalah program yang telah terdownload di memori eksternal AT28C64, berbeda dengan Mode Monitor di mana sinyal reset dikirim melalui PC melalui port serial. Sinyal reset yang berasal dari Power ON Reset akan menyebabkan sistem ini langsung ter-reset dan menjalankan program yang tersimpan dalam memori EEPROM AT28C64 pada saat power supply aktif.[4] 3. Mode Flash PEROM Berbeda dengan Mode Monitor dan Memori Eksternal di mana pada kedua mode ini, program aplikasi (program rancangan) terletak pada memori eksternal AT28C64, maka pada Mode Flash PEROM program aplikasi terletak pada memori Flash PEROM AT8951.[4] 4. Mode Flash PEROM Single Chip Mode ini ditujukan untuk aplikasi sebagai prototipe dari sebuah sistem yang hanya terdiri dari sebuah IC saja (Single Chip
9 Prototype) sehingga tentu saja PPI 8255 maupun memori eksternal AT28C64 harus berada dalam keadaan non aktif.[4] PPI 8255 dan memori eksternal AT28C64 diakses menggunakan sistem intel bus di mana Port 0 (Data/Low Byte Address Bus), Port 2 (High Byte Address Bus) dan (P3.6/WR & P3.7/RD) digunakan oleh komponen-komponen ini. Dengan digunakannya mode single chip di mana kedua komponen ini berada dalam keadaan non aktif maka port-port tersebut akan bebas digunakan.[4] 5. Mode Flash PEROM dengan Memori Eksternal Pada Mode ini Port 0, Port 2 , P3.6 dan P3.7 masih berfungsi sebagai port-port dari sistem bus sehingga memori eksternal maupun 8255 masih dapat digunakan. Mode ini ditujukan apabila dibutuhkan memori untuk penyimpanan data yang cukup besar sehingga 8 Kb memori AT28C64 tidak mampu menyimpan data dan program rancangan dan tidak ingin menambah memori eksternal lagi.[4] 2.4.2 Peta Memori Memori dalam DST-51 menurut letaknya terdiri dari dua bagian yaitu memori internal dan memori eksternal, di mana memori internal adalah memori yang terletak di dalam 89C51 dan memori eksternal adalah memori yang terletak di luar 89C51 yaitu Parallel EEPROM 8 Kb 28C64.[4] 1. Memori Internal RAM Internal yang digunakan untuk proses penyimpanan data atau lokasi dari Register-register Fungsi Spesial. Memori terletak di alamat 00H hingga FFH.[4] • Register Fungsi Khusus Register-register dengan fungsi-fungsi tertentu yang disediakan oleh 89C51 seperti serial, timer, akumulator dll. • Lokasi Kosong Lokasi yang diijinkan untuk menyimpan data dalam Modul DST-51. • DST-51 Monitor Lokasi yang digunakan oleh DST-51 Monitor Software. • Bit Addressable Location Lokasi di mana pengalamatan dapat diproses per bit (digunakan oleh DST-51 Monitor Software sebagai variable).
10 • Register Bank Lokasi R0 hingga R7 di Bank 0, 1, 2 dan 3.
Gambar 2.3 : Alokasi memori internal pada DST-51 2. Memori Eksternal Memori eksternal merupakan Flash PEROM yang digunakan untuk penyimpanan program rancangan pada Mode Flash PEROM atau Program Monitor DST-51 atau Program Debugger DST-51 pada Mode Monitor maupun Memori Eksternal. Lokasi Flash PEROM terletak pada alamat 0000H hingga 0FFFH. Sekilas terlihat alamat RAM Internal berada di dalam alamat Flash PEROM sehingga tentunya akan terjadi tabrakan. Namun pada kenyataannya alamat RAM Internal dan Flash PEROM terletak pada memori yang berbeda sehingga alamat 00H dari RAM Internal tidak ada hubungannya dengan alamat 0000H dari Flash PEROM.[4] Memori Eksternal berupa Parallel EEPROM 8 Kb yang biasa digunakan untuk menyimpan program rancangan atau data (Mode Monitor dan Mode Memori Eksternal). Lokasi Memori Eksternal tersebut terletak pada alamat 2000H hingga 3FFFH.[4]
11
Gambar 2.4 : Alokasi memori eksternal pada DST-51 2.4.3 Alamat-alamat lain Selain untuk memori juga terdapat alamat-alamat lain untuk modul-modul atau komponen-komponen lain yang menggunakan sistem bus. Dalam Modul DST-51 terdapat komponen PPI 8255 yang terletak pada alamat 4000H hingga 4003H, sedangkan alamat 6000H hingga FFFFH disediakan untuk modul-modul atau komponen lain yang akan dihubungkan ke sistem bus.[4] 2.4.4 Peripheral Port Interface Dengan digunakannya Port 0, Port 2, P3.6 dan P3.7 maka port-port ini tidak lagi dapat digunakan sebagai I/O biasa. Untuk mengatasi kekurangan port tersebut maka PPI 8255 yang mempunyai tiga buah 8 bit I/O yaitu Port A, Port B dan Port C dapat digunakan. Setelah diinisialisasi PPI 8255 dapat berfungsi sebagai I/O hanya dengan mengirimkan data atau mengambil data dari alamat-alamat port tersebut.[4] Tabel 2.1 : Alamat PPI PPI Alamat Port A 4000H Port B 4001H Port C 4002H Control 4003H
12 2.4.5 Mikrokontroller AT89C51 Mikrokontroller AT89C51 merupakan salah satu keluarga dari MCS-51 keluaran Atmel dengan 4 Kbyte Flash PEROM ( Programmable and Erasable Read Only Memory ). Flash PEROM merupakan memori dengan teknologi non-volatile memory, isi memory tersebut dapat diisi ulang ataupun dihapus berkali-kali. Memori ini biasa digunakan untuk menyimpan instruksi (perintah) berstandar MCS-51 code.[3] Jenis mikrokontroller ini pada dasarnya dapat digunakan untuk mengolah data per bit maupun data 8 bit secara bersamaan. Sebuah mikrokontroller dapat bekerja apabila dalam mikrokontroller tersebut terdapat sebuah program yang berisi instruksi-instruksi yang akan digunakan untuk menjalankan sistem mikrokontroller tersebut.[3] Mikrokontroller AT89C51 ini merupakan mikrokontroller satu chip yang mempunyai konfigurasi sebagai berikut :[6] CPU (Central Processing Unit) 8 bit yang termasuk keluarga dari MCS51. Kemampuan boolean processor (logika 1 bit). 32 jalur port I/O bidirectional, dapat dialamati tiap port. Program memori internal berupa Flash ROM dengan kapasitas 4KB. RAM internal sebesar 128 byte. Dua buah timer internal 16 bit. Satu buah port komunikasi serial. Dua buah interupsi eksternal. Susunan pin-pin pada Mikrokontroller AT89C51 diperlihatkan pada gambar 2.7 :[6] • Port 0 (1 byte) terletak pada pin 32 hingga 39. • Port 1 (1 byte) terletak pada pin 1 hingga 8. • Port 2 (1 byte) terletak pada pin 21 hingga 28. • Port 3 (1 byte) terletak pada pin 10 hingga 17. • Kristal dipasang pada pin 18 dan 19. • Reset terletak pada pin 9. • Pin catudaya positif 5V pada kaki 40, ground pada kaki 20. • Kontrol lain-lain
13
Gambar 2.5 : Konfigurasi pin AT89C51 Peran penting mikrokontroller AT89C51 dalam sistem adalah sebagai tempat pengolahan data hasil pembacaan sensor suhu dan kontrol data sebelum data dikirimkan menuju PC dengan menggunakan komunikasi serial RS232. Selain itu mikrokontroller AT89C51 juga mengontrol penyalaan fan. 2.5
KOMUNIKASI DATA SERIAL Komunikasi data secara serial dibedakan menjadi dua, yaitu: komunikasi data serial secara sinkron dan komunikasi data secara asinkron. Pada komunikasi data serial sinkron, clock dikirimkan bersama-sama dengan data serial, sedangkan komunikasi data asinkron clock tidak dikirimkan bersama data serial, melainkan dibangkitkan secara sendiri-sendiri baik pada sisi pengirim (transmitter) maupun pada sisi penerima (receiver). Pada IBM PC kompatibel port serialnya termasuk jenis asinkron.[4] Pada AT89C51, kecepatan pengiriman data (baud rate) dan fase clock pada sisi transmitter dan receiver harus sinkron. Untuk itu diperlukan sinkronisasi antara transmitter dan receiver. Hal ini dilakukan oleh bit ‘Start’ dan bit ‘Stop’. Ketika saluran transmisi dalam keadaan idle, output UART adalah dalam keadaan logika ‘1’. Ketika transmitter ingin mengirimkan data, output UART akan diset lebih dahulu ke logika ‘0’ untuk waktu 1 bit. Sinyal ini pada receiver akan dikenali sebagai sinyal ‘Start’ yang digunakan untuk mensinkronkan fase clocknya
14 sehingga sinkron dengan fase clock transmitter. Selanjutnya data akan dikirimkan secara serial dari bit paling rendah (bit 0) sampai bit tertinggi. Selanjutnya akan dikirim sinyal ‘Stop’ sebagai akhir dari pengiriman data serial. Cara pemberian kode yang disalurkan tidak ditetapkan secara pasti. Berikut ini adalah contoh pengiriman huruf ‘A’ dalam format ASCII (41 Heksa / 10000001biner) tanpa bit paritas.[4]
Gambar 2.6 : Pengiriman huruf ‘A’ tanpa bit paritas Kecepatan transmisi (baud rate) dapat dipilih bebas dalam rentang tertentu. Baud rate yang umum dipakai adalah 110, 135, 150, 300, 600, 1200, 2400 dan 9600 (bit/detik). Dalam komunikasi data serial, baud rate dari kedua alat yang berhubungan harus diatur pada kecepatan yang sama.[4] 2.5.1 IC MAX 232 dan RS-232 Komunikasi serial RS 232 merupakan komunikator yang menghubungkan antara terminal data dari suatu peralatan dan peralatan ini menjalankan pertukaran data biner secara serial. Sedangkan IC yang dipakai untuk komunikasi juga menyediakan pemrosesan data dan protocol, sedang yang lain berupa interface ke jalur komunikasi secara fisik. Bagian yang menangani komunikasi dapat dihubungkan dengan berbagai aplikasi yang berhubungan dengan elektronik, tetapi memiliki kondisi arus dan tegangan yang tak menentu. IC serial RS 232 dipakai sebagai interface (antar muka) dari PC ke perangkat luar (level TTL) atau sebaliknya dari perangkat luar ke PC. [3] Karakteristik dari RS-232 memiliki ketentuan level tegangan sebagai berikut: 1. Logika ‘1’ disebut ‘mark’ terletak antara -3 Volt hingga -25 Volt. 2. Logika ‘0’ disebut ‘space’ terletak antara +3 Volt hingga +25 Volt. 3. Daerah tegangan antara -3 Volt hingga +3 Volt adalah invalid level, yaitu daerah tegangan yang tidak memiliki level logika pasti sehingga harus dihindari. Demikian juga, level tegangan lebih negative dari -25 Volt atau lebih positif dari +25 Volt juga harus dihindari karena tegangan tersebut dapat merusak line driver pada saluran RS-232.[3]
15 Gambar 2.7 berikut ini adalah contoh level tegangan RS-232 pada pengiriman huruf ‘A’ dalam format ASCII tanpa bit paritas.
Gambar 2.7 : Level tegangan RS-232 pada pengiriman huruf ‘A’ tanpa bit paritas
Gambar 2.8 : IC MAX 232 IC MAX 232 mempunyai 16 kaki dengan supply tegangan sebesar 5 volt. kaki ke-16 digunakan sebagai input tegangan (Vcc), kaki ke-15 sebagai Ground (GND). Kaki 8 dan 13 digunakan sebagai input RS-232, sedangkan kaki 7 dan 14 sebagai output RS-232. RS-232 merupakan suatu interface yang digunakan untuk menghubungkan antara terminal data dari suatu peralatan dan peralatan komunikasi data yang menjalankan pertukaran data biner secara serial.[2] 2.5.2 Konfigurasi Port Serial Gambar 2.9 adalah gambar konektor port serial DB-9 pada bagian belakang CPU. Pada computer IBM PC kompatibel biasanya kita dapat
16 menemukan dua konektor port serial DB-9 yang biasa dinamai COM1 dan COM2.
Gambar 2.9 : Konektor serial DB-9 pada bagian belakang CPU Tabel 2.2 : Konfigurasi pin dan nama sinyal konektor serial Nomor Nama Direction Keterangan Pin Sinyal Data Carrier Detect / Received 1 DCD In Line Sinyal Detect 2 RxD In Receive Data 3 TxD Out Transmit Data 4 DTR Out Data Terminal Ready 5 GND Ground 6 DSR In Data Set Ready 7 RST Out Request to Send 8 CTS In Clear to Send 9 RI In Ring Indicator Keterangan mengenai fungsi saluran RS-232 pada konektor DB-9 adalah sebagai berikut: • Received Line Signal detect, dengan saluran ini DCE memberitahukan ke DTE bahwa pada terminal masukan ada data masuk.
17 • Receive Data, digunakan DTE pada saat menerima data dari DCE. • Transmit Data, digunakan DTE pada saat mengirimkan data ke DCE. • Data Terminal Ready, pada saluran ini DTE memberitahukan kesiapan terminalnya. • Signal Ground, merupakan saluran ground. • Ring Indicator, pada saluran ini DCE memberitahu ke DTE bahwa sebuah stasiun menghendaki hubungan dengannya. • Clear to Send, dengan saluran ini DCE memberitahukan bahwa DTE sudah dapat memulai pengiriman data. • Request to Send, dengan saluran ini DCE diminta mengirim data oleh DTE. • DCE Ready, merupakan sinyal aktif yang menunjukkan bahwa DCE sudah siap. Untuk dapat menggunakan port serial maka perlu diketahui alamatnya. Biasanya tersedia dua port serial pada CPU yaitu COM1 dan COM2. Base Address COM1 biasanya adalah 1016 (3F8h) dan COM2 biasanya 760 (2F8h). Alamat tersebut adalah alamat yang biasa digunakan. 2.6
RELAY Relay adalah suatu alat untuk membuka atau menutup kontak-kontak dengan tujuan tertentu dengan maksud mentransfer suatu fungsi dari suatu rangkaian ke rangkaian lainnya. Relay mempunyai impedansi rendah yang nilai impedansi kumparannya berkisar antara beberapa puluh sampai beberapa ratus ohm, sedangkan sumber sinyal penggerak masukan umumnya memiliki impedansi yang tinggi.[1] Cara yang paling efektif untuk mengemudikan arus yang besar dari suatu port output adalah dengan menggunakan driver relay. Sisi driving pada relay arus relatif jauh lebih kecil daripada arus yang dapat melewati kontaktor. Oleh karena itu relay dipandang sebagai interface yang sangat memadai untuk mengatasi kebutuhan kontrol arus-arus besar.[3] Terdapat beberapa susunan kontak relay yang semuanya secara listrik terisolasi dari rangkaian kumparan, yaitu : • Normal terbuka (Normallly open) • Normal tertutup (Normally close)[1] Jika ada arus masuk melalui kumparan akan terdapat induksi magnetik. Induksi magnetik inilah yang nantinya akan menarik pegas
18 kontak untuk merubah posisi awalnya menjadi terhubung ke bagian yang diinginkan. Setelah arus berhenti, maka tidak ada induksi sehingga kontak akan kembali ke posisi semula.[1]
BAB 3 PERANCANGAN DAN PEMBUATAN SISTEM 3.1
UMUM Sebelum membahas tentang perangkat keras yang akan dirancang, maka dapat dilihat gambaran umum dari sistem kontrol dan monitoring suhu ruangan. Gambar 3.1 merupakan blok diagram sistem : Informasi suhu ruang
Sensor suhu
fan
relay
ADC 0804
mikrokontroller RS 232
Gambar 3.1 : Blok diagram sistem secara keseluruhan. Ket : ----- blok yang dikerjakan pada proyek akhir ini. Dari blok diagram sistem dapat dijelaskan urutan kerja sistem, yaitu: • Sistem controlling 1. Sensor menangkap informasi suhu ruangan dan mengirimkannya ke mikrokontroller.
19
20 2. Jika suhu yang terukur berada diatas level normal ( >28°C ), maka mikrokontroller akan mengirimkan data tersebut ke PC yang dilengkapi dengan Dialogic Card melalui komunikasi serial RS232. 3. PC melalui Dialogic Card menghubungi user. User kemudian dapat mengaktifkan kipas (fan) dengan menekan digit 2 pada keypad telepon. 4. Selain itu, mikrokontroller juga mengaktifkan timer,sehingga jika user tidak menjawab telepon (dering >5 kali tidak diangkat), maka secara otomatis mikrokontroller akan mengaktifkan relay yang terhubung dengan kipas (fan). • Sistem monitoring 1. User menekan nomor telepon server 203. 2. User akan mendengar voice guide dimana user dapat mengetahui suhu ruangan dengan menekan digit 1 untuk ruangan 1 dan digit 2 untuk ruangan 2. 3. Mikrokontroller akan mengirimkan data yang terukur. 4. Jika suhu yang terukur >28°C, maka akan terdengar perintah untuk mengaktifkan kipas dengan menekan digit 2 pada keypad telepon. 5. Mikrokontroller akan mengaktifkan relay.
21
Gambar 3.2 : Flowchart sistem aplikasi program monitoring dari PC
22
Gambar 3.3 : Flowchart sistem aplikasi dari mikrokontroler ke operator (keadaan tidak normal) Ket : *Suhu tidak mutlak 28°C (tergantung pada setting point dari program pada mikrokontroler )
23 3.2 PERANCANGAN ALAT 3.2.1 Rangkaian Catu Daya Rangkaian catu daya memberikan supply tegangan pada alat pengendali. Rangkaian catu daya memanfaatkan sumber tegangan dari PLN sebesar 220 VAC. Tegangan 220 VAC ini kemudian diturunkan menjadi 15 VAC melalui trafo penurun tegangan. Tegangan AC 15V disearahkan oleh dioda bridge menjadi tegangan DC. Keluaran dari dioda bridge ini kemudian masuk ke IC regulator yang fungsinya adalah untuk menstabilkan tegangan. IC regulator terdiri dari dua buah IC, yaitu LM7809 dan LM7812 yang menghasilkan tegangan DC sebesar +9V dan +12V. Oleh karena tegangan yang diperlukan pada tiap rangkaian tidak sama, rangkaian catu daya ini mempunyai dua buah keluaran tegangan DC, yaitu +9V dan +12V yang berfungsi untuk memberi pasokan tegangan pada tiap rangkaian. Kapasitor 100nF berfungsi untuk membuang noise pada tegangan DC. Tegangan DC +12V digunakan untuk tegangan masukan pada sakelar, sedangkan tegangan DC +9V digunakan untuk tegangan masukan pada DST51.
Gambar 3.4 : Rangkaian catu daya 3.2.2 Rangkaian Sensor Suhu Untuk perencanaan sensor suhu pada proyek akhir ini, sensor yang digunakan adalah IC LM35 sebanyak dua buah, yaitu sensor1 untuk ruang 1 dan sensor2 untuk ruang 2, dimana sensor tersebut merupakan komponen yang sangat peka atau sangat mudah mengalami perubahan tegangan apabila dikenai perubahan suhu. Hal ini disebabkan sifat dari
24 bahan semikonduktor yang peka terhadap perubahan suhu, selain itu komponen ini telah dikaliberasi secara langsung di dalam derajat Celsius. Karakteristik dari LM35 dapat dijelaskan dengan data sebagai berikut : • Output 10 mV/ °C • Tegangan input 5 V Output dari sensor suhu ini dihubungkan dengan ADC0804, dengan tegangan referensi sebesar 5 Volt dengan lebar data 8 bit, sehingga setiap kenaikan 1 bit data, resolusinya adalah : Res = Vreferensi/banyak data = 5 V / 28 -1 = 19.6 mV
Gambar 3.5 : Rangkaian sensor suhu 3.2.3 Rangkaian ADC 0804 Rangkaian ADC ini berfungsi untuk mengubah tegangan analog pada masukan menjadi digital pada keluarannya, sehingga data tersebut dapat diproses oleh mikrokontroller. Jenis IC ADC yang digunakan adalah IC ADC 0804, yang mempunyai resolusi 8 bit dengan waktu konversi 100us serta mempunyai 8 kanal output. Masukan sinyal analog dari keluaran sensor suhu merupakan tegangan masuk yang melalui input ADC dan untuk menentukan sampling rate pada sinyal yang akan diubah ke digital digunakan clock dari suatu oscillator.
25 Perencanaan clock ADC0804 dapat dihitung dengan rumus :
f =
1 1.1 • R • C
Range frekuensi yang diperbolehkan adalah 100 kHz sampai 1280 kHz. Jika direncanakan frekuensi yang digunakan sebesar 600 kHz, R=10 kOhm, maka nilai kapasitor adalah :
1 1.1 • R • f 1 C= 1.1 • 10000 • 600000 C = 151,51 pF C=
Nilai kapasitor yang ada di pasaran adalah 150 pF. Rangkaian clock ADC0804 adalah sebagai berikut :
Gambar 3.6 : Rangkaian clock ADC0804 Tegangan referensi pada ADC0804 adalah 5 Volt. Pada pin Vref+ diberikan tegangan sebesar Vref/2 = 2,5 Volt. Pemberian tegangan referensi pada ADC0804 seperti pada rangkaian berikut :
26
Gambar 3.7 : Rangkaian ADC0804 3.2.4 Rangkaian Sakelar 1 dan 2 Rangkaian sakelar 1 dan sakelar 2 ini berfungsi untuk mengendalikan beban yang digunakan untuk kipas angin (fan), dan dikendalikan langsung oleh mikrokontroller. Rangkaian dan komponen pada kedua sakelar sama, perbedaannya hanya terdapat pada port pengendali ke mikrokontroller. Sakelar 1 terhubung ke Port 1 bit 6 dan sakelar 2 terhubung ke Port 1 bit 7. Proses perhitungan untuk sakelar dapat dilihat dibawah. Relay yang digunakan pada rangkaian sakelar ini mempunyai supply tegangan sebesar 12 Volt DC untuk dapat menggerakkan relay, dan beban yang dapat dikendalikan sebesar 220 VAC dengan arus sebesar 3A. Jadi, daya yang mampu digunakan adalah sekitar 150 Watt. Dengan daya sebesar 150 Watt maka sakelar ini dapat digunakan untuk kipas angin. Untuk mengetahui nilai arus IC, maka dilakukan pengukuran terlebih dahulu terhadap tahanan pada relai atau R(relay). Selanjutnya, IC dapat dicari dengan rumus : IC = V (Re lay ) = 12 V = 5 , 4 mA R (Re lay ) 2200
27 IB(sat) = I C = 5 , 4 mA = 0 , 032 mA β 165 Arus basis IB pada transistor adalah : B
IB = V C − VBE B
R
=
12 V − 0 , 7 10 K Ω
IB = 1,13 mA B
Dari perhitungan diatas tampak bahwa IB > IB (sat), maka IB akan membuat transistor Q1 dalam keadaan saturasi, sehingga arus akan mengalir menuju relay yang akan menyebabkan switch akan tertutup dan rangkaian sakelar akan terhubung dengan peralatan elektronik dan membuat peralatan elektronik tersebut akan on. Untuk menghindari kerusakan relay dan komponen lainnya , maka daya beban yang digunakan tidak melebihi dari 150 Watt. Supaya bisa mengendalikan peralatan elektronik yang dayanya lebih besar, maka relay harus diganti dengan relay yang bisa menahan beban dengan daya tinggi.
Gambar 3.8 : Rangkaian sakelar 1 (untuk ruangan 1)
28
Gambar 3.9 : Rangkaian sakelar 2 (untuk ruangan 2) 3.3
Komunikasi Antara Mikrokontroller dan PC Dalam tugas akhir ini digunakan komunikasi serial asinkron mode 1 melalui port Com1. Register-register yang digunakan dalam komunikasi serial antara lain IE (Interrupt Enable), SCON (Serial Control), SBUF (Serrial Buffer), dan PCON (Program Control Register). Adapun inisialisasi untuk AT89C51 adalah sebagai berikut : 1. Mengaktifkan interupt secara program, dilakukan dengan memberikan logika high atau set bit pada IE (Interrupt Enable) bit ke 7. 2. Menghitung baud rate yang digunakan dan menginisialisasi TH1, dengan persamaan :
Baudrate =
fosc 12 x(256 − TH 1) xK
Nilai dari K dipengaruhi oleh bit SMOD pada register PCON. Jika bit ini diset, K bernilai 16, Tetapi jika tidak, maka K bernilai 32. Pada proyek akhir ini, SMOD=1, sehingga digunakan persamaan :
Baudrate =
fosc 12 x(256 − TH 1) x16
Jika direncanakan baud rate 9600 dengan frekuensi 11,0592 MHz, maka TH1 adalah 250 atau 0FAH.
29 3. Menginisialisasi SCON Untuk register SCON direncanakan sebagai berikut : SCON.7 = 0 pemilih mode serial (mode 1) SCON.6 = 1 pemilih mode serial (mode 1) SCON.5 = 0 not enable communication multiprocesor SCON.4 = 0 mengaktifkan penerimaan secara software SCON.3 = 0 not enable bit ke 9 yang dikirim pada mode 2 dan 3 SCON.2 = 0 not enable bit ke 9 yang dikirim pada mode 2 dan 3 SCON.1 = 1 mengaktifkan transmit interrupt flag SCON.0 = 0 not enable receive interrupt flag Dari data SCON diatas, dapat dituliskan secara heksadesimal 52H 4. Mengaktifkan Serial secara program dapat dilakukan dengan mengeset bit ES (Enable Serial) yang merupakan bit ke empat dari register IE (Interrupt Enable). 3.4
DST51 DST-51 adalah sebuah sistem berbasis mikrokontroler AT8951 yang sangat ringkas di mana sistem ini dapat digunakan untuk pengembangan aplikasi (development system), aplikasi siap pakai (stand alone) dan prototype single chip system. Pengguna bebas berkreasi dengan menulis software (perangkat lunak) pada komputer, kemudian mendownload ke board DST51 dan menjalankannya. Bila proses download telah selesai, maka DST-51 langsung dapat bekerja sendiri (stand alone) pada sistem yang ada tanpa ada penggantian atau penambahan komponen. Pada saat akan mendownload program ke dalam DST51, pastikan posisi jumper pada mode Download. Setelah proses download selesai, maka ubah posisi jumper ke mode Stand alone. Pada mode ini tidak memerlukan komputer lagi. Dalam membuat program ada beberapa hal yang perlu diketahui, salah satunya adalah alamat dari masing-masing port dan register yang telah tersedia. Memori dalam DST-51 menurut letaknya terdiri dari dua bagian yaitu memori internal dan memori eksternal, di mana memori internal adalah memori yang terletak di dalam 89C51 dan memori eksternal adalah memori yang terletak di luar 89C51 yaitu Parallel EEPROM 8 Kb 28C64. Memori internal terletak di alamat 00H hingga FFH. Sedangkan untuk memori eksternal terletak pada alamat 2000H hingga 3FFFH.
30 3.4.1. Instalasi Software pada PC 1. Buka File DSTTools.zip. 2. Ekstrak file tersebut di folder C:\programs 3. Buka file JFE.exe di folder C:\programs\jfe 4. Pilih Open Workspace pada menu file JFE 5. Buka file DST51.wsp di folder c:\programs\jfe sehingga tampak tombol-tombol seperti pada gambar dibawah :
Gambar 3.10 : Open Workspace
Gambar 3.11 : JFE dengan tools-toolsnya. 6. Buka file baru dengan memilih tombol New pada menu file atau salah satu contoh program yang ada.
31
Gambar 3.12 : Menu File Baru 3.4.2. Instalasi Hardware 1. Hubungkan On Cable RS232 to TTL dari DST-51 ke PC dengan sisi bersegel menuju ke PC 2. Pastikan posisi jumper seperti pada Mode Monitor. 3. Hubungkan Power Supply 9-12 Volt DC atau AC ke konektor AC/DC Input. 4. Pastikan LED Merah menyala 5. Kembali ke software JFE dengan file DST51.wsp yang telah terbuka, tekan tombol DLD51. Program Downloader DST-51 akan terbuka. 6. Tekan “Setting” dan atur port sesuai port komunikasi serial yang digunakan, baud rate pada 9600 bps, data bits 8, stop bits 1, parity none dan flow control custom. 7. Tekan “Connect” dan pesan “DST-51 Delta Monitor Tools ver xx” atau “DDT-52 Delta Debugger Tools ver xx” akan tampil dan menunjukkan bahwa DST-51 telah berkomunikasi dengan PC.
Gambar 3.13 : Indikasi bahwa DST-51 telah berkomunikasi dengan PC.
32
*****Halaman ini sengaja dikosongkan*****
BAB 4 PENGUJIAN DAN PENGUKURAN ALAT 4.1
PENDAHULUAN Untuk menghindari kesalahan-kesalahan yang terjadi pada peralatan elektronika, diperlukan suatu pengujian dan pengukuran pada peralatan yang direncanakan. Pengujian dilakukan dengan menguji tiap-tiap modul. Jika berjalan dengan baik, maka peralatan ini dianggap telah berjalan sesuai dengan yang diinginkan.
4.2
TUJUAN PENGUJIAN Tujuan dari pengukuran ini adalah untuk mendapatkan suatu informasi dari sistem, sehingga kita dapat mengetahui spesifikasi dari peralatan tersebut. Pengujian dilakukan terlebih dahulu pada tiap-tiap modul. Setelah masing-masing modul dapat menghasilkan suatu output sesuai dengan keinginan, maka dapat dilanjutkan dengan menggabungkan modul-modul tersebut sampai sistem dapat berjalan sesuai dengan yang diharapkan.
4.3 1. 2. 3. 4. 5.
PERALATAN Peralatan yang digunakan pada pengukuran ini adalah: Multimeter digital LED Termometer Rangkaian yang akan diuji. Kabel penghubung.
4.4
PENGUJIAN RANGKAIAN CATU DAYA Pengujian ini bertujuan untuk mengetahui tegangan yang dikeluarkan oleh rangkaian tersebut. Dengan begitu dapat dipastikan apakah terjadi kesalahan terhadap rangkaian atau tidak. Jika diukur, hasil dari keluaran tegangan tidak murni sebesa r+5Volt, +9 Volt dan +12 Volt, tetapi +4.8 Volt, +8.97 Volt dan +12.03 Volt. Hasil tersebut dikarenakan beberapa faktor, diantaranya kualitas dari tiap-tiap komponen yang digunakan nilainya tidak murni. Selain itu, tegangan jala-jala listrik yang digunakan tidak stabil.
33
34
Gambar 4.1 : Pengukuran Rangkaian Catu Daya. Tabel 4.1 : Hasil Pengukuran Rangkaian Catu Daya. Hasil seharusnya
Hasil Pengukuran
+5 Volt +9 Volt +12 Volt
+4.8 Volt +8.97 Volt +12.03 Volt
Persen error (%error) dari pengukuran rangkaian catu daya diatas adalah :
% Error =
| Pengukuran − Teori | x100% Teori
• Untuk +5 Volt :
| 4.8V − 5V | x100% 5V = 4%
% Error =
• Untuk +9Volt :
% Error =
| 8.97V − 9V | x100% 9V
35
= 0.33% • Untuk +12Volt :
| 12.03V − 12V | x100% 12V = 0.25%
% Error =
Dari perhitungan %error diatas, kesalahan tegangan output untuk +5 Volt sebesar 4%, +9 Volt sebesar 0.33% sedangkan untuk +12 Volt sebesar 0.25%. Hal ini masih dapat diabaikan, karena kesalahannya tidak melebihi nilai toleransi (10%), sehingga tegangan yang dijadikan sebagai inputan sensor, mikrokontroller dan rangkaian sakelar ini masih dapat digunakan dan bisa mengaktifkan rangkaian, serta tidak menyebabkan kerusakan pada komponen. 4.5
PENGUJIAN RANGKAIAN SUHU LM35 Dengan melakukan pengukuran LM35 dan karakteristiknya sebagai sensor suhu, didapatkan data seperti pada tabel di bawah :
Input Sensor ( °C ) 30 29.5 29 28.5 27.5 27
Tabel 4.2 : Data Pengukuran IC LM35 Output % Error Output Sensor1 untuk Sensor2 /Ukur (°C) Sensor1 /Ukur (mV) 30.2 0.66 % 30.1 29.8 1% 29.8 29.2 0.69 % 29.2 28.2 1.05 % 28.1 27.8 1.1 % 27.9 27.6 2.2 % 27.5
% Error untuk Sensor2 0.33 % 1% 0.69 % 2.1 % 1.45 % 1.85 %
Data diatas diambil berdasarkan perbandingan langsung antara termometer suhu manual (yang menggunakan air raksa) dengan sensor suhu LM35. Dari data diatas, dapat diamati bahwa %Error yang terjadi berkisar antara 0.33% hingga 2.2%. Namun nilai tersebut masih dapat ditolerir sebab tidak melebihi 10%. Ketidakpresisian hasil pengukuran ini dapat disebabkan banyak faktor, salah satunya adalah sensitifitas antara termometer manual dan sensor suhu berbeda. Untuk mencari %Error dari hasil pengukuran digunakan rumus :
36
% Error =
| Pengukuran − Teori | x100% Teori
4.6
PENGUJIAN RANGKAIAN ADC Pengujian ini bertujuan untuk mengamati konversi masukan analog yang berupa tegangan menjadi data digital. Pada pengujian ini diperoleh ketepatan pembacaan ADC 0804. Ketepatan pembacaan data tersebut dapat dipengaruhi waktu sampling dan keluaran dari penguat instrument. Berdasarkan pengambilan data dari ADC 0804 diperoleh faktor konversi. Faktor konversi ini menentukan hasil pembacaan dari tiap-tiap obyek yang diuji, yaitu konversi tegangan analog dari sensor suhu dan nilai digital yang diperoleh. Nilai digital ini digunakan sebagai masukan dari DST-51. Pengujian ini menggunakan LED sebagai indikator data output. Data hasil pengujian ADC 0804 ditunjukkan pada Tabel 4.3. Tabel 4.3 : Data hasil pengujian ADC 0804. No. Masukan ADC Vout (Volt) (biner) 1. 0 00000000 2. 0,019 00000001 3. 0,038 00000010 4. 0,082 00000100 5. 0,161 00001000 6. 0,301 00001111 7. 0,32 00010000 8. 0,62 00100000 9. 0,93 00110000 10. 1,25 01000000 11. 1,57 01010000 12. 1,87 01100000 13. 2,18 01110000 14. 2,5 10000000 15. 2,81 10010000 16. 3,12 10100000 17. 3,42 10110000 18. 3,75 11000000 19. 4,06 11010000 20. 4,38 11100000
37 21. 22.
4,69 4,98
11110000 11111111
Dari data diatas tampak bahwa selisih tegangan input per bit mendekati 20mV. Hal ini sesuai dengan teori dimana jika output dari sensor suhu dihubungkan dengan ADC0804, dengan tegangan referensi sebesar 5 Volt dan lebar data 8-bit maka setiap kenaikan 1 bit data resolusinya adalah : Res = Vreferensi/banyak data = 5 V /256 - 1 = 19.6 mV 4.7
PENGUJIAN RANGKAIAN SAKELAR Pengukuran ini bertujuan untuk melihat apakah relay berfungsi dengan baik. Dengan memberikan logika 1 (high) pada Port1 bit 6 atau Port1 bit 7, maka arus akan mengalir menuju basis dan menginduksi magnet coil dari relay, sehingga relay yang pada mulanya Normally Open menjadi tertutup dan menyalakan fan. Tabel 4.4 : Data hasil pengujian Relay Input dari Port 1 Kondisi Relay Keterangan Bit 6 low Open Kipas mati Bit 6 high Close Kipas nyala Bit 7 low Open Kipas mati Bit 7 high Close Kipas nyala
4.8
PENGUJIAN DAN PENGUKURAN ALAT SECARA KESELURUHAN Pengujian alat secara keseluruhan dilakukan dengan proses sebagai berikut : 1. Menghubungkan rangkaian seperti pada blok diagram. 2. Mengkondisikan ruangan pada suhu maksimal atau batas atas 0 yang ditentukan ( 28 C ). 3. Mengamati kinerja dari mikrokontroller.
38 Tabel 4.5 : Data hasil pengujian sistem. Output sensor Input ADC 0804 Suhu yang suhu (V) (V) terukur 0.28 1.4 28 0.285 1.425 29 0.29 1.45 29 0.295 1.475 30 0.30 1.5 30 Dari data diatas, dapat diketahui bahwa input dari ADC merupakan output dari sensor suhu yang dikuatkan 5 kali oleh rangkaian penguat sinyal. Selain itu ADC tidak mengenali nilai 5 mV sehingga jika ada input yang memiliki kelebihan nilai diatas 5 mV, maka akan dibulatkan 1 tingkat diatasnya. Setelah dilakukan pengintegrasian sistem, dapat diketahui bahwa jika sensor mendeteksi suhu yang terukur > 28°C , maka data tersebut akan segera dikirimkan oleh mikrokontroller ke PC melalui komunikasi serial. Selanjutnya mikrokontroller menunggu input dari PC berupa karakter ‘n’ yang mewakili perintah untuk menyalakan kipas melalui penekanan digit ‘2’ pada keypad telepon. Jika selama 15 detik tidak ada input dari PC, maka mikrokontroller akan menyalakan kipas secara otomatis. Penyalaan kipas dikontrol oleh Port1 bit 6 untuk relay 1 dan Port1 bit 7 untuk relay 2. Jika Port1 bit 6 atau Port1 bit 7 bernilai high, maka kipas akan menyala. Selain aplikasi diatas, mikrokontroller menunggu apakah ada karakter ‘s’ atau ‘u’ yang dikirimkan dari PC. Karakter ‘s’ mewakili permintaan untuk mengirimkan informasi suhu ruang1 dan karakter ‘u’ untuk ruang2. Jika ada karakter diatas, maka mikrokontroller akan membaca data dari ADC dan mengirimkannya melalui komunikasi serial.
BAB 5 PENUTUP Setelah dilakukan pengujian alat, maka diperoleh beberapa kesimpulan dan saran yang diharapkan berguna untuk perbendaharaan ilmu dan teknologi serta bagi kelanjutan dalam penyempurnaan proyek akhir ini. 5.1
KESIMPULAN Berdasarkan hasil studi dan analisa terhadap pembuatan perangkat keras (Hardware), maka dapat diambil beberapa kesimpulan, antara lain : 1. Pada rangkaian catu daya, hasil tegangan output yang didapatkan tidak sama dengan tegangan yang diharapkan. Namun hal ini masih dapat ditolerir sebab %Errornya tidak melebihi 10%. 2. Rangkaian sensor suhu dapat bekerja dengan baik, dengan penyimpangan yang kecil. 3. Rangkaian ADC0804 yang digunakan untuk mengkonversi tegangan analog menjadi data digital bekerja dengan baik, dengan penyimpangan yang cukup kecil. 4. Tegangan output dari Port1 bit 6 dan port1 bit 7 pada mikrokontroller digunakan untuk mentrigger driver relay yang terhubung dengan kipas angin (fan). 5. Penyalaan kipas dapat melalui dua cara yaitu melalui penekanan digit 2 pada keypad telepon atau otomatis oleh mikrokontroller. 6. Setting point suhu harus selalu disesuaikan dengan kondisi suhu ruangan.
5.2.
SARAN Beberapa saran yang dapat dipertimbangkan untuk pengembangan di masa mendatang, antara lain : 1. Pada pembuatan proyek akhir ini tidak ada pengkondisian/pemberitahuan keadaan kipas on/off saat user ingin mengontrol/memonitor suhu ruangan. Untuk pengembangannya diharapkan supaya dapat memberitahukan keadaan/status fan sebelum user memilih menu untuk mengontrol. 2. Proyek akhir ini hanya mengontrol dan memonitor 2 ruangan, diharapkan dalam pengembangannya dapat menambahkan jumlah ruangan yang dipantau.
39
40
*****Halaman ini sengaja dikosongkan*****
DAFTAR PUSTAKA 1) Dahlan, Muhammad, Perencanaan dan Pembuatan Sistem Kontrol ON/OFF Peralatan Rumah Tangga via PABX NEAX 2000 IPS Menggunakan Mikrokontroller AT89C51(Hardware), PA PENS 2005. 2) Pramono, Adi dan Gunawan, R. Rachmad, Rancang Bangun Interface Multisensor ke Terminal Serial Menggunakan AT89C51, PA PENS, 2004. 3) Stephanie, Pengontrolan Kadar Kelembaban Greenhouse Anggrek Menggunakan SMS Pada HP (Perangkat Lunak), PA PENS, 2004. 4) DST-51/2, AT8952 Minimum System, Delta Electronic. 5) Artikel “Temperature Sensor – The LM35”, http://www.facstaff.bucknell.edu/mastascu/elessonhtml/Sensors/Te mpLM35.html. 6) Datasheet AT89C51, http://www.atmel.com/dyn/resources/ prod_documents /doc0265.pdf 7) http://www.datasheetarchive.com/LM35.pdf
41
42
*****Halaman ini sengaja dikosongkan*****
LAMPIRAN ;********************************************************* ; Program Mikrokontroller ;********************************************************* $mod51 PORTA equ 2000H PORTB equ 2001H PORTC equ 2002H PORTCW equ 2003H CW equ 92H ADC_RD1 bit ADC_WR1 bit ADC_INT1 bit ADC_RD2 bit ADC_WR2 bit ADC_INT2 bit
P1.5 P1.6 P1.7 P1.2 P1.3 P1.4
adc1 adc2 cr lf count_5ms1 count_5ms2 dat1 dat2 timer
equ equ equ equ equ equ equ equ equ
30H 31H 0dh 0ah 32H 33H 34H 35H 36H
; carriage return ;line feed
;********************************************************* org 4000h ljmp main ;********************************************************* ; Main program ; ********************************************************* org 4100h main: mov sp,#60h
43
44 mov timer,#15 ; timer 15 detik lcall initser ; init serial port lcall initppi ; init ppi 8255 clr p1.0 clr p1.1 ;********************************************************* ;adc2 ;********************************************************* ulang2: lcall sampling_adc2 lcall char mov dptr,#datasuhul2 u3: clr a movc a,@a+dptr cjne a,#0,banding4 sjmp lanjut2 banding4:
mov mov cjne clr ljmp
dat2,a a,adc2 a,dat2,loop3 p1.1 ulang
loop3:
inc sjmp
dptr u3
lanjut2: u4:
mov clr movc cjne ljmp
dptr,#datasuhuh2 a a,@a+dptr a,#0,banding2 ulang
banding2:
mov mov cjne cjne mov call mov call call
dat2,a a,adc2 a,dat2,loop4 a,#70,balikin3 a,#28 kirim a,#2 kirim delay
45 balikin3: call
;perubahan loop4:
m:
balikin2:
m call djnz mov setb ljmp
delay_15s timer,balikin3 timer,#15 p1.1 ulang2
inc sjmp
dptr u4
jnb clr mov cjne setb ret
ri,balikin2 ; cek ada karakter masuk gak ri ; jika ada -> clear interrupt a,sbuf ; get character a,#'m',balikin2 p1.1
;********************************************************* ;adc1 ;********************************************************* ulang: lcall sampling_adc1 lcall char mov dptr,#datasuhul ul: clr a movc a,@a+dptr cjne a,#0,banding sjmp lanjut banding:
mov mov cjne clr ljmp
dat1,a a,adc1 a,dat1,loop5 p1.0 ulang2
loop5:
inc sjmp
dptr ul
lanjut: u2:
mov clr movc
dptr,#datasuhuh a a,@a+dptr
46 cjne ljmp
a,#0,banding1 ulang2
mov mov cjne cjne mov call mov call call call call djnz mov setb ljmp
dat1,a a,adc1 a,dat1,loop1 a,#6,balikin1 a,#28 kirim a,#1 kirim delay n delay_15s timer,balikin1 timer,#15 p1.0 ulang
loop1:
inc sjmp
dptr u2
n:
jnb clr mov cjne setb ret
ri,balikin ; cek ada karakter masuk gak ri ; jika ada -> clear interrupt a,sbuf ; get character a,#'n',balikin p1.0
jnb clr mov
ri,ulangi ri a,sbuf
; cek ada karakter masuk gak ; jika ada -> clear interrupt ; get character
cjne mov
a,#'s',c1 a,adc1
;ambil data sebelumnya
banding1:
balikin1:
;perubahan
balikin: ;periksa karakter char:
; periksa
47
c1:
add call call
a,#20 kirim delay
cjne mov subb call call
a,#'u',ulangi a,adc2 a,#42 kirim delay
;ambil data sebelumnya
ulangi:
ret
delay_15s:
mov
count_5ms1,#200
tunggu_1s:
acall djnz ret
Delay_5mS count_5ms1,tunggu_1s
Delay_5mS:
Push Mov Mov Mov Setb
TMOD TMOD,#21H TH0,#0EDH TL0,#0FFH TR0
Tunggu_5mS:
Jbc Ajmp
TF0,Sudah_5mS Tunggu_5mS
Sudah_5mS:
Clr Pop Ret
TR0 TMOD
;Timer Mode 16 bit counter
;********************************************************* ; Wait until a char is received from the serial port, and return ; that char in the accumulator. ;********************************************************* inchar: jnb ri,inchar ; wait until ri is set clr ri ; clear interrupt mov a,sbuf ; get character ret
48 ;********************************************************* ; Wait until tx ready, then send a char out serial port ;********************************************************* outchar: jnb ti,outchar ; wait until ti is set clr ti ; clear it mov sbuf,a ; send acc to serial buffer ret ;********************************************************* ; Init serial port ;********************************************************* initser: mov scon,#52h mov tmod,#20h mov th1,#0FAh setb tr1 ; start timer ret initppi:
delay: d1:
mov mov movx ret mov mov djnz djnz ret
sampling_adc1: ; aktifkan ADC0804 1 clr setb not_EOC: jb delay1: djnz djnz clr djnz mov movx setb mov ret
dptr,#PORTCW a,#CW @dptr,a r0,#7fh r1,#0h r1,$ r0,d1
ADC_WR1 ; start of conversion ADC_WR1 ADC_INT1,not_EOC R2,$ R3,delay1 ADC_RD1 ; Baca Data melalui PB R3,$ DPTR,#PORTB A,@DPTR ADC_RD1 adc1,a
49 sampling_adc2: ; aktifkan ADC0804 2 clr setb not_EOC2: jb delay2: djnz djnz clr djnz mov movx setb mov ret
ADC_WR2 ; start of conversion ADC_WR2 ADC_INT2,not_EOC2 R4,$ R5,delay2 ADC_RD2 ; Baca Data melalui PA R5,$ DPTR,#PORTA A,@DPTR ADC_RD2 adc2,a
;********************************************************* ;kirim serial: ;********************************************************* kirim: mov b,#10 ;dibagi seratus div ab ;hasil bagi di a, sisa di b add a,#30h call outchar mov a,b add a,#30h call outchar call delay mov a,#0dh call outchar mov a,#0ah call outchar call delay ret datasuhul: datasuhuh:
db db
1,2,3,4,5,0 6,7,8,9,10,11,0
datasuhul2: datasuhuh2:
db db end
64,65,66,67,68,69,0 70,71,72,73,74,75,0
50
*****Halaman ini sengaja dikosongkan*****
ADC0801/ADC0802/ADC0803/ADC0804/ADC0805 8-Bit mP Compatible A/D Converters General Description The ADC0801, ADC0802, ADC0803, ADC0804 and ADC0805 are CMOS 8-bit successive approximation A/D converters that use a differential potentiometric ladderÐ similar to the 256R products. These converters are designed to allow operation with the NSC800 and INS8080A derivative control bus with TRI-STATEÉ output latches directly driving the data bus. These A/Ds appear like memory locations or I/O ports to the microprocessor and no interfacing logic is needed. Differential analog voltage inputs allow increasing the common-mode rejection and offsetting the analog zero input voltage value. In addition, the voltage reference input can be adjusted to allow encoding any smaller analog voltage span to the full 8 bits of resolution.
Y
Features
Y
Y
Y
Compatible with 8080 mP derivativesÐno interfacing logic needed - access time - 135 ns Easy interface to all microprocessors, or operates ‘‘stand alone’’
Y
Y Y Y
Y Y Y Y
Differential analog voltage inputs Logic inputs and outputs meet both MOS and TTL voltage level specifications Works with 2.5V (LM336) voltage reference On-chip clock generator 0V to 5V analog input voltage range with single 5V supply No zero adjust required 0.3× standard width 20-pin DIP package 20-pin molded chip carrier or small outline package Operates ratiometrically or with 5 VDC, 2.5 VDC, or analog span adjusted voltage reference
Key Specifications Y Y
Resolution Total error Conversion time
8 bits g (/4 LSB, g (/2 LSB and g 1 LSB
100 ms
Typical Applications
TL/H/5671 – 1
8080 Interface
Error Specification (Includes Full-Scale, Zero Error, and Non-Linearity) Part Number
FullVREF/2 e 2.500 VDC VREF/2 e No Connection Scale (No Adjustments) (No Adjustments) Adjusted
ADC0801 g (/4 LSB ADC0802
g (/2 LSB
ADC0803 g (/2 LSB ADC0804 ADC0805
g 1 LSB g 1 LSB
TL/H/5671–31 TRI-STATEÉ is a registered trademark of National Semiconductor Corp. Z-80É is a registered trademark of Zilog Corp. C1995 National Semiconductor Corporation
TL/H/5671
RRD-B30M115/Printed in U. S. A.
ADC0801/ADC0802/ADC0803/ADC0804/ADC0805 8-Bit mP Compatible A/D Converters
December 1994
Absolute Maximum Ratings
(Notes 1 & 2) Storage Temperature Range
If Military/Aerospace specified devices are required, please contact the National Semiconductor Sales Office/Distributors for availability and specifications.
875 mW
ESD Susceptibility (Note 10)
Supply Voltage (VCC) (Note 3) 6.5V Voltage b 0.3V to a 18V Logic Control Inputs b 0.3V to (VCC a 0.3V) At Other Input and Outputs Lead Temp. (Soldering, 10 seconds) Dual-In-Line Package (plastic) 260§ C Dual-In-Line Package (ceramic) 300§ C Surface Mount Package Vapor Phase (60 seconds) Infrared (15 seconds)
b 65§ C to a 150§ C
Package Dissipation at TA e 25§ C
800V
Operating Ratings (Notes 1 & 2) Temperature Range TMINsTAsTMAX ADC0801/02LJ, ADC0802LJ/883 b55§ CsTAs a 125§ C b 40§ C s TA s a 85§ C ADC0801/02/03/04LCJ b 40§ C s TA s a 85§ C ADC0801/02/03/05LCN ADC0804LCN 0§ CsTAs a 70§ C ADC0802/03/04LCV 0§ CsTAs a 70§ C ADC0802/03/04LCWM 0§ CsTAs a 70§ C Range of VCC 4.5 VDC to 6.3 VDC
215§ C 220§ C
Electrical Characteristics The following specifications apply for VCC e 5 VDC, TMINsTAsTMAX and fCLK e 640 kHz unless otherwise specified. Max
Units
ADC0801: Total Adjusted Error (Note 8)
Parameter
With Full-Scale Adj. (See Section 2.5.2)
Conditions
Min
Typ
g (/4
LSB
ADC0802: Total Unadjusted Error (Note 8)
VREF/2 e 2.500 VDC
g (/2
LSB
ADC0803: Total Adjusted Error (Note 8)
With Full-Scale Adj. (See Section 2.5.2)
g (/2
LSB
ADC0804: Total Unadjusted Error (Note 8)
VREF/2 e 2.500 VDC
g1
LSB
ADC0805: Total Unadjusted Error (Note 8)
VREF/2-No Connection
g1
LSB
VREF/2 Input Resistance (Pin 9)
ADC0801/02/03/05 ADC0804 (Note 9)
2.5 0.75
8.0 1.1
kX kX
Analog Input Voltage Range
(Note 4) V( a ) or V(b)
VCC a 0.05
VDC
DC Common-Mode Error
Over Analog Input Voltage Range
Gnd – 0.05 g (/16
g (/8
LSB
Power Supply Sensitivity
VCC e 5 VDC g 10% Over Allowed VIN( a ) and VIN(b) Voltage Range (Note 4)
g (/16
g (/8
LSB
AC Electrical Characteristics The following specifications apply for VCC e 5 VDC and TA e 25§ C unless otherwise specified. Symbol
Parameter
Conditions
Min
Typ
Max
Units
TC
Conversion Time
fCLK e 640 kHz (Note 6)
103
114
ms
TC
Conversion Time
(Note 5, 6)
66
73
1/fCLK
fCLK
Clock Frequency Clock Duty Cycle
VCC e 5V, (Note 5) (Note 5)
100 40
1460 60
kHz %
CR
Conversion Rate in Free-Running Mode
INTR tied to WR with CS e 0 VDC, fCLK e 640 kHz
8770
9708
conv/s
tW(WR)L
Width of WR Input (Start Pulse Width)
CS e 0 VDC (Note 7)
100
tACC
Access Time (Delay from Falling Edge of RD to Output Data Valid)
CL e 100 pF
135
200
ns
t1H, t0H
TRI-STATE Control (Delay from Rising Edge of RD to Hi-Z State)
CL e 10 pF, RL e 10k (See TRI-STATE Test Circuits)
125
200
ns
tWI, tRI
Delay from Falling Edge of WR or RD to Reset of INTR
300
450
ns
CIN
Input Capacitance of Logic Control Inputs
5
7.5
pF
COUT
TRI-STATE Output Capacitance (Data Buffers)
5
7.5
pF
640
ns
CONTROL INPUTS [Note: CLK IN (Pin 4) is the input of a Schmitt trigger circuit and is therefore specified separately] VIN (1)
Logical ‘‘1’’ Input Voltage (Except Pin 4 CLK IN)
VCC e 5.25 VDC
2
2.0
15
VDC
AC Electrical Characteristics (Continued) The following specifications apply for VCC e 5VDC and TMIN s TA s TMAX, unless otherwise specified. Symbol
Parameter
Conditions
Min
Typ
Max
Units
CONTROL INPUTS [Note: CLK IN (Pin 4) is the input of a Schmitt trigger circuit and is therefore specified separately] VIN (0)
Logical ‘‘0’’ Input Voltage (Except Pin 4 CLK IN)
VCC e 4.75 VDC
IIN (1)
Logical ‘‘1’’ Input Current (All Inputs)
VIN e 5 VDC
IIN (0)
Logical ‘‘0’’ Input Current (All Inputs)
VIN e 0 VDC
0.005 b1
b 0.005
0.8
VDC
1
mADC mADC
CLOCK IN AND CLOCK R VT a
CLK IN (Pin 4) Positive Going Threshold Voltage
2.7
3.1
3.5
VDC
VTb
CLK IN (Pin 4) Negative Going Threshold Voltage
1.5
1.8
2.1
VDC
VH
CLK IN (Pin 4) Hysteresis (VT a )b(VTb)
0.6
1.3
2.0
VDC
VOUT (0)
Logical ‘‘0’’ CLK R Output Voltage
IO e 360 mA VCC e 4.75 VDC
0.4
VDC
VOUT (1)
Logical ‘‘1’’ CLK R Output Voltage
IO eb360 mA VCC e 4.75 VDC
2.4
VDC
DATA OUTPUTS AND INTR VOUT (0)
Logical ‘‘0’’ Output Voltage Data Outputs INTR Output
IOUT e 1.6 mA, VCC e 4.75 VDC IOUT e 1.0 mA, VCC e 4.75 VDC
VOUT (1)
Logical ‘‘1’’ Output Voltage
IO eb360 mA, VCC e 4.75 VDC
2.4
VOUT (1)
Logical ‘‘1’’ Output Voltage
IO eb10 mA, VCC e 4.75 VDC
4.5
VDC
IOUT
TRI-STATE Disabled Output Leakage (All Data Buffers)
VOUT e 0 VDC VOUT e 5 VDC
b3
mADC mADC
ISOURCE
VOUT Short to Gnd, TA e 25§ C
4.5
6
mADC
ISINK
VOUT Short to VCC, TA e 25§ C
9.0
16
mADC
0.4 0.4
VDC VDC VDC
3
POWER SUPPLY ICC
Supply Current (Includes Ladder Current)
fCLK e 640 kHz, VREF/2 e NC, TA e 25§ C and CS e 5V
ADC0801/02/03/04LCJ/05 ADC0804LCN/LCV/LCWM
1.1 1.9
1.8 2.5
mA mA
Note 1: Absolute Maximum Ratings indicate limits beyond which damage to the device may occur. DC and AC electrical specifications do not apply when operating the device beyond its specified operating conditions. Note 2: All voltages are measured with respect to Gnd, unless otherwise specified. The separate A Gnd point should always be wired to the D Gnd. Note 3: A zener diode exists, internally, from VCC to Gnd and has a typical breakdown voltage of 7 VDC. Note 4: For VIN( b ) t VIN( a ) the digital output code will be 0000 0000. Two on-chip diodes are tied to each analog input (see block diagram) which will forward conduct for analog input voltages one diode drop below ground or one diode drop greater than the VCC supply. Be careful, during testing at low VCC levels (4.5V), as high level analog inputs (5V) can cause this input diode to conduct–especially at elevated temperatures, and cause errors for analog inputs near full-scale. The spec allows 50 mV forward bias of either diode. This means that as long as the analog VIN does not exceed the supply voltage by more than 50 mV, the output code will be correct. To achieve an absolute 0 VDC to 5 VDC input voltage range will therefore require a minimum supply voltage of 4.950 VDC over temperature variations, initial tolerance and loading. Note 5: Accuracy is guaranteed at fCLK e 640 kHz. At higher clock frequencies accuracy can degrade. For lower clock frequencies, the duty cycle limits can be extended so long as the minimum clock high time interval or minimum clock low time interval is no less than 275 ns. Note 6: With an asynchronous start pulse, up to 8 clock periods may be required before the internal clock phases are proper to start the conversion process. The start request is internally latched, see Figure 2 and section 2.0. Note 7: The CS input is assumed to bracket the WR strobe input and therefore timing is dependent on the WR pulse width. An arbitrarily wide pulse width will hold the converter in a reset mode and the start of conversion is initiated by the low to high transition of the WR pulse (see timing diagrams). Note 8: None of these A/Ds requires a zero adjust (see section 2.5.1). To obtain zero code at other analog input voltages see section 2.5 and Figure 5 . Note 9: The VREF/2 pin is the center point of a two-resistor divider connected from VCC to ground. In all versions of the ADC0801, ADC0802, ADC0803, and ADC0805, and in the ADC0804LCJ, each resistor is typically 16 kX. In all versions of the ADC0804 except the ADC0804LCJ, each resistor is typically 2.2 kX. Note 10: Human body model, 100 pF discharged through a 1.5 kX resistor.
3
Typical Performance Characteristics
Logic Input Threshold Voltage vs. Supply Voltage
Delay From Falling Edge of RD to Output Data Valid vs. Load Capacitance
CLK IN Schmitt Trip Levels vs. Supply Voltage
fCLK vs. Clock Capacitor
Full-Scale Error vs Conversion Time
Effect of Unadjusted Offset Error vs. VREF/2 Voltage
Output Current vs Temperature
Power Supply Current vs Temperature (Note 9)
Linearity Error at Low VREF/2 Voltages
TL/H/5671 – 2
4
TRI-STATE Test Circuits and Waveforms t1H
t1H, CL e 10 pF
t0H
tr e 20 ns
t0H, CL e 10 pF
tr e 20 ns
TL/H/5671 – 3
Timing Diagrams (All timing is measured from the 50% voltage points)
Output Enable and Reset INTR
Note: Read strobe must occur 8 clock periods (8/fCLK) after assertion of interrupt to guarantee reset of INTR.
5
TL/H/5671 – 4
Typical Applications (Continued) 6800 Interface
Ratiometric with Full-Scale Adjust
Note: before using caps at VIN or VREF/2, see section 2.3.2 Input Bypass Capacitors.
Absolute with a 2.500V Reference
Absolute with a 5V Reference
*For low power, see also LM385-2.5
Zero-Shift and Span Adjust: 2VsVINs5V
Span Adjust: 0VsVINs3V
TL/H/5671 – 5
6
Typical Applications (Continued) A mP Interfaced Comparator
Directly Converting a Low-Level Signal
For: VIN( a ) l VIN( b ) Output e FFHEX VREF/2 e 256 mV
For: VIN( a ) k VIN( b ) Output e 00HEX
1 mV Resolution with mP Controlled Range VREF/2 e 128 mV 1 LSB e 1 mV VDAC s VIN s (VDAC a 256 mV)
Digitizing a Current Flow
TL/H/5671 – 6
7
Typical Applications (Continued) External Clocking
Self-Clocking Multiple A/Ds
100 kHz s fCLK s 1460 kHz
*Use a large R value to reduce loading at CLK R output.
mP Interface for Free-Running A/D
Self-Clocking in Free-Running Mode
*After power-up, a momentary grounding of the WR input is needed to guarantee operation.
Operating with ‘‘Automotive’’ Ratiometric Transducers Ratiometric with VREF/2 Forced
*VIN( b ) e 0.15 VCC 15% of VCC s VXDR s 85% of VCC TL/H/5671 – 7
8
Typical Applications (Continued) mP Compatible Differential-Input Comparator with Pre-Set VOS (with or without Hysteresis)
*See Figure 5 to select R value DB7 e ‘‘1’’ for VIN( a ) l VIN( b ) a (VREF/2) Omit circuitry within the dotted area if hysteresis is not needed
Handling g 10V Analog Inputs
Low-Cost, mP Interfaced, Temperature-to-Digital Converter
*Beckman Instruments Ý694-3-R10K resistor array
mP Interfaced Temperature-to-Digital Converter
*Circuit values shown are for 0§ C s TA s a 128§ C **Can calibrate each sensor to allow easy replacement, then A/D can be calibrated with a pre-set input voltage.
TL/H/5671 – 8
9
Typical Applications (Continued) Handling g 5V Analog Inputs
Read-Only Interface
TL/H/5671 – 34
TL/H/5671–33
*Beckman Instruments Ý694-3-R10K resistor array
mP Interfaced Comparator with Hysteresis
Protecting the Input
Diodes are 1N914 TL/H/5671 – 9
A Low-Cost, 3-Decade Logarithmic Converter
TL/H/5671–35
Analog Self-Test for a System
TL/H/5671–36
*LM389 transistors A, B, C, D e LM324A quad op amp
10
TL/H/5671 – 37
Typical Applications (Continued) 3-Decade Logarithmic A/D Converter
Multiplexing Differential Inputs
Noise Filtering the Analog Input
fC e 20 Hz Uses Chebyshev implementation for steeper roll-off unity-gain, 2nd order, low-pass filter Adding a separate filter for each channel increases system response time if an analog multiplexer is used
Increasing Bus Drive and/or Reducing Time on Bus
Output Buffers with A/D Data Enabled
TL/H/5671 – 10
*A/D output data is updated 1 CLK period prior to assertion of INTR
*Allows output data to set-up at falling edge of CS
11
Typical Applications (Continued) Sampling an AC Input Signal
Note 1: Oversample whenever possible [keep fs l 2f( b 60)] to eliminate input frequency folding (aliasing) and to allow for the skirt response of the filter. Note 2: Consider the amplitude errors which are introduced within the passband of the filter.
70% Power Savings by Clock Gating
(Complete shutdown takes & 30 seconds.)
Power Savings by A/D and VREF Shutdown
TL/H/5671 – 11
*Use ADC0801, 02, 03 or 05 for lowest power consumption. Note: Logic inputs can be driven to VCC with A/D supply at zero volts. Buffer prevents data bus from overdriving output of A/D when in shutdown mode.
12
Functional Description
other words, if we apply an analog input equal to the centervalue g (/4 LSB, we guarantee that the A/D will produce the correct digital code. The maximum range of the position of the code transition is indicated by the horizontal arrow and it is guaranteed to be no more than (/2 LSB. The error curve of Figure 1c shows a worst case error plot for the ADC0802. Here we guarantee that if we apply an analog input equal to the LSB analog voltage center-value the A/D will produce the correct digital code. Next to each transfer function is shown the corresponding error plot. Many people may be more familiar with error plots than transfer functions. The analog input voltage to the A/D is provided by either a linear ramp or by the discrete output steps of a high resolution DAC. Notice that the error is continuously displayed and includes the quantization uncertainty of the A/D. For example the error at point 1 of Figure 1a is a (/2 LSB because the digital code appeared (/2 LSB in advance of the center-value of the tread. The error plots always have a constant negative slope and the abrupt upside steps are always 1 LSB in magnitude.
1.0 UNDERSTANDING A/D ERROR SPECS A perfect A/D transfer characteristic (staircase waveform) is shown in Figure 1a . The horizontal scale is analog input voltage and the particular points labeled are in steps of 1 LSB (19.53 mV with 2.5V tied to the VREF/2 pin). The digital output codes that correspond to these inputs are shown as Db1, D, and D a 1. For the perfect A/D, not only will centervalue (Ab1, A, A a 1, . . . . ) analog inputs produce the correct output ditigal codes, but also each riser (the transitions between adjacent output codes) will be located g (/2 LSB away from each center-value. As shown, the risers are ideal and have no width. Correct digital output codes will be provided for a range of analog input voltages that extend g (/2 LSB from the ideal center-values. Each tread (the range of analog input voltage that provides the same digital output code) is therefore 1 LSB wide.
Figure 1b shows a worst case error plot for the ADC0801. All center-valued inputs are guaranteed to produce the correct output codes and the adjacent risers are guaranteed to be no closer to the center-value points than g (/4 LSB. In
Error Plot
Transfer Function
a) Accuracy e g 0 LSB: A Perfect A/D Transfer Function
Error Plot
b) Accuracy e g (/4 LSB Transfer Function
Error Plot
c) Accuracy e g (/2 LSB FIGURE 1. Clarifying the Error Specs of an A/D Converter 13
TL/H/5671 – 12
Functional Description (Continued)
A functional diagram of the A/D converter is shown in Figure 2 . All of the package pinouts are shown and the major logic control paths are drawn in heavier weight lines. The converter is started by having CS and WR simultaneously low. This sets the start flip-flop (F/F) and the resulting ‘‘1’’ level resets the 8-bit shift register, resets the Interrupt (INTR) F/F and inputs a ‘‘1’’ to the D flop, F/F1, which is at the input end of the 8-bit shift register. Internal clock signals then transfer this ‘‘1’’ to the Q output of F/F1. The AND gate, G1, combines this ‘‘1’’ output with a clock signal to provide a reset signal to the start F/F. If the set signal is no longer present (either WR or CS is a ‘‘1’’) the start F/F is reset and the 8-bit shift register then can have the ‘‘1’’ clocked in, which starts the conversion process. If the set signal were to still be present, this reset pulse would have no effect (both outputs of the start F/F would momentarily be at a ‘‘1’’ level) and the 8-bit shift register would continue to be held in the reset mode. This logic therefore allows for wide CS and WR signals and the converter will start after at least one of these signals returns high and the internal clocks again provide a reset signal for the start F/F.
2.0 FUNCTIONAL DESCRIPTION The ADC0801 series contains a circuit equivalent of the 256R network. Analog switches are sequenced by successive approximation logic to match the analog difference input voltage [VIN( a ) b VIN(b)] to a corresponding tap on the R network. The most significant bit is tested first and after 8 comparisons (64 clock cycles) a digital 8-bit binary code (1111 1111 e full-scale) is transferred to an output latch and then an interrupt is asserted (INTR makes a highto-low transition). A conversion in process can be interrupted by issuing a second start command. The device may be operated in the free-running mode by connecting INTR to the WR input with CS e 0. To ensure start-up under all possible conditions, an external WR pulse is required during the first power-up cycle. On the high-to-low transition of the WR input the internal SAR latches and the shift register stages are reset. As long as the CS input and WR input remain low, the A/D will remain in a reset state. Conversion will start from 1 to 8 clock periods after at least one of these inputs makes a low-tohigh transition .
TL/H/5671 – 13
Note 1: CS shown twice for clarity. Note 2: SAR e Successive Approximation Register.
FIGURE 2. Block Diagram
14
Functional Description (Continued) slight time difference between the input voltage samples is given by:
After the ‘‘1’’ is clocked through the 8-bit shift register (which completes the SAR search) it appears as the input to the D-type latch, LATCH 1. As soon as this ‘‘1’’ is output from the shift register, the AND gate, G2, causes the new digital word to transfer to the TRI-STATE output latches. When LATCH 1 is subsequently enabled, the Q output makes a high-to-low transition which causes the INTR F/F to set. An inverting buffer then supplies the INTR input signal. Note that this SET control of the INTR F/F remains low for 8 of the external clock periods (as the internal clocks run at (/8 of the frequency of the external clock). If the data output is continuously enabled (CS and RD both held low), the INTR output will still signal the end of conversion (by a highto-low transition), because the SET input can control the Q output of the INTR F/F even though the RESET input is constantly at a ‘‘1’’ level in this operating mode. This INTR output will therefore stay low for the duration of the SET signal, which is 8 periods of the external clock frequency (assuming the A/D is not started during this interval). When operating in the free-running or continuous conversion mode (INTR pin tied to WR and CS wired lowÐsee also section 2.8), the START F/F is SET by the high-to-low transition of the INTR signal. This resets the SHIFT REGISTER which causes the input to the D-type latch, LATCH 1, to go low. As the latch enable input is still present, the Q output will go high, which then allows the INTR F/F to be RESET. This reduces the width of the resulting INTR output pulse to only a few propagation delays (approximately 300 ns). When data is to be read, the combination of both CS and RD being low will cause the INTR F/F to be reset and the TRI-STATE output latches will be enabled to provide the 8bit digital outputs.
DVe(MAX) e (VP) (2qfcm)
#f J, 4.5
CLK
where: DVe is the error voltage due to sampling delay VP is the peak value of the common-mode voltage fcm is the common-mode frequency As an example, to keep this error to (/4 LSB ( E 5 mV) when operating with a 60 Hz common-mode frequency, fcm, and using a 640 kHz A/D clock, fCLK, would allow a peak value of the common-mode voltage, VP, which is given by: [DVe(MAX) (fCLK)] VP e (2qfcm) (4.5) or (5 c 10b3) (640 c 103) (6.28) (60) (4.5) which gives VP j 1.9V. The allowed range of analog input voltages usually places more severe restrictions on input common-mode noise levels. An analog input voltage with a reduced span and a relatively large zero offset can be handled easily by making use of the differential input (see section 2.4 Reference Voltage). VP e
2.3 Analog Inputs 2.3.1 Input Current Normal Mode Due to the internal switching action, displacement currents will flow at the analog inputs. This is due to on-chip stray capacitance to ground as shown in Figure 3 .
2.1 Digital Control Inputs The digital control inputs (CS, RD, and WR) meet standard T2L logic voltage levels. These signals have been renamed when compared to the standard A/D Start and Output Enable labels. In addition, these inputs are active low to allow an easy interface to microprocessor control busses. For non-microprocessor based applications, the CS input (pin 1) can be grounded and the standard A/D Start function is obtained by an active low pulse applied at the WR input (pin 3) and the Output Enable function is caused by an active low pulse at the RD input (pin 2). 2.2 Analog Differential Voltage Inputs and Common-Mode Rejection This A/D has additional applications flexibility due to the analog differential voltage input. The VIN(b) input (pin 7) can be used to automatically subtract a fixed voltage value from the input reading (tare correction). This is also useful in 4 mA – 20 mA current loop conversion. In addition, commonmode noise can be reduced by use of the differential input. The time interval between sampling VIN( a ) and VIN(b) is 4(/2 clock periods. The maximum error voltage due to this
TL/H/5671 – 14
rON of SW 1 and SW 2 j 5 kX r e rON CSTRAY j 5 kX c 12 pF e 60 ns
FIGURE 3. Analog Input Impedance
15
Functional Description (Continued) resistance and the use of an input bypass capacitor. This error can be eliminated by doing a full-scale adjustment of the A/D (adjust VREF/2 for a proper full-scale readingÐsee section 2.5.2 on Full-Scale Adjustment) with the source resistance and input bypass capacitor in place.
The voltage on this capacitance is switched and will result in currents entering the VIN( a ) input pin and leaving the VIN(b) input which will depend on the analog differential input voltage levels. These current transients occur at the leading edge of the internal clocks. They rapidly decay and do not cause errors as the on-chip comparator is strobed at the end of the clock period.
2.4 Reference Voltage 2.4.1 Span Adjust For maximum applications flexibility, these A/Ds have been designed to accommodate a 5 VDC, 2.5 VDC or an adjusted voltage reference. This has been achieved in the design of the IC as shown in Figure 4 .
Fault Mode If the voltage source applied to the VIN( a ) or VIN(b) pin exceeds the allowed operating range of VCC a 50 mV, large input currents can flow through a parasitic diode to the VCC pin. If these currents can exceed the 1 mA max allowed spec, an external diode (1N914) should be added to bypass this current to the VCC pin (with the current bypassed with this diode, the voltage at the VIN( a ) pin can exceed the VCC voltage by the forward voltage of this diode). 2.3.2 Input Bypass Capacitors Bypass capacitors at the inputs will average these charges and cause a DC current to flow through the output resistances of the analog signal sources. This charge pumping action is worse for continuous conversions with the VIN( a ) input voltage at full-scale. For continuous conversions with a 640 kHz clock frequency with the VIN( a ) input at 5V, this DC current is at a maximum of approximately 5 mA. Therefore, bypass capacitors should not be used at the analog inputs or the VREF/2 pin for high resistance sources (l 1 kX). If input bypass capacitors are necessary for noise filtering and high source resistance is desirable to minimize capacitor size, the detrimental effects of the voltage drop across this input resistance, which is due to the average value of the input current, can be eliminated with a full-scale adjustment while the given source resistor and input bypass capacitor are both in place. This is possible because the average value of the input current is a precise linear function of the differential input voltage. 2.3.3 Input Source Resistance Large values of source resistance where an input bypass capacitor is not used, will not cause errors as the input currents settle out prior to the comparison time. If a low pass filter is required in the system, use a low valued series resistor (s 1 kX) for a passive RC section or add an op amp RC active low pass filter. For low source resistance applications, (s 1 kX), a 0.1 mF bypass capacitor at the inputs will prevent noise pickup due to series lead inductance of a long wire. A 100X series resistor can be used to isolate this capacitorÐboth the R and C are placed outside the feedback loopÐfrom the output of an op amp, if used.
TL/H/5671 – 15
FIGURE 4. The VREFERENCE Design on the IC Notice that the reference voltage for the IC is either (/2 of the voltage applied to the VCC supply pin, or is equal to the voltage that is externally forced at the VREF/2 pin. This allows for a ratiometric voltage reference using the VCC supply, a 5 VDC reference voltage can be used for the VCC supply or a voltage less than 2.5 VDC can be applied to the VREF/2 input for increased application flexibility. The internal gain to the VREF/2 input is 2, making the full-scale differential input voltage twice the voltage at pin 9. An example of the use of an adjusted reference voltage is to accommodate a reduced spanÐor dynamic voltage range of the analog input voltage. If the analog input voltage were to range from 0.5 VDC to 3.5 VDC, instead of 0V to 5 VDC, the span would be 3V as shown in Figure 5 . With 0.5 VDC applied to the VIN(b) pin to absorb the offset, the reference voltage can be made equal to (/2 of the 3V span or 1.5 VDC. The A/D now will encode the VIN( a ) signal from 0.5V to 3.5 V with the 0.5V input corresponding to zero and the 3.5 VDC input corresponding to full-scale. The full 8 bits of resolution are therefore applied over this reduced analog input voltage range.
2.3.4 Noise The leads to the analog inputs (pin 6 and 7) should be kept as short as possible to minimize input noise coupling. Both noise and undesired digital clock coupling to these inputs can cause system errors. The source resistance for these inputs should, in general, be kept below 5 kX. Larger values of source resistance can cause undesired system noise pickup. Input bypass capacitors, placed from the analog inputs to ground, will eliminate system noise pickup but can create analog scale errors as these capacitors will average the transient input switching currents of the A/D (see section 2.3.1.). This scale error depends on both a large source
16
Functional Description (Continued)
*Add if VREF/2 s 1 VDC with LM358 to draw 3 mA to ground.
TL/H/5671 – 16
a) Analog Input Signal Example
b) Accommodating an Analog Input from 0.5V (Digital Out e e 00HEX) to 3.5V (Digital Out e FFHEX)
FIGURE 5. Adapting the A/D Analog Input Voltages to Match an Arbitrary Input Signal Range 2.5 Errors and Reference Voltage Adjustments
2.4.2 Reference Accuracy Requirements The converter can be operated in a ratiometric mode or an absolute mode. In ratiometric converter applications, the magnitude of the reference voltage is a factor in both the output of the source transducer and the output of the A/D converter and therefore cancels out in the final digital output code. The ADC0805 is specified particularly for use in ratiometric applications with no adjustments required. In absolute conversion applications, both the initial value and the temperature stability of the reference voltage are important factors in the accuracy of the A/D converter. For VREF/2 voltages of 2.4 VDC nominal value, initial errors of g 10 mVDC will cause conversion errors of g 1 LSB due to the gain of 2 of the VREF/2 input. In reduced span applications, the initial value and the stability of the VREF/2 input voltage become even more important. For example, if the span is reduced to 2.5V, the analog input LSB voltage value is correspondingly reduced from 20 mV (5V span) to 10 mV and 1 LSB at the VREF/2 input becomes 5 mV. As can be seen, this reduces the allowed initial tolerance of the reference voltage and requires correspondingly less absolute change with temperature variations. Note that spans smaller than 2.5V place even tighter requirements on the initial accuracy and stability of the reference source. In general, the magnitude of the reference voltage will require an initial adjustment. Errors due to an improper value of reference voltage appear as full-scale errors in the A/D transfer function. IC voltage regulators may be used for references if the ambient temperature changes are not excessive. The LM336B 2.5V IC reference diode (from National Semiconductor) has a temperature stability of 1.8 mV typ (6 mV max) over 0§ CsTAs a 70§ C. Other temperature range parts are also available.
2.5.1 Zero Error The zero of the A/D does not require adjustment. If the minimum analog input voltage value, VIN(MIN), is not ground, a zero offset can be done. The converter can be made to output 0000 0000 digital code for this minimum input voltage by biasing the A/D VIN(b) input at this VIN(MIN) value (see Applications section). This utilizes the differential mode operation of the A/D. The zero error of the A/D converter relates to the location of the first riser of the transfer function and can be measured by grounding the VIN (b) input and applying a small magnitude positive voltage to the VIN ( a ) input. Zero error is the difference between the actual DC input voltage that is necessary to just cause an output digital code transition from 0000 0000 to 0000 0001 and the ideal (/2 LSB value ((/2 LSB e 9.8 mV for VREF/2 e 2.500 VDC). 2.5.2 Full-Scale The full-scale adjustment can be made by applying a differential input voltage that is 1(/2 LSB less than the desired analog full-scale voltage range and then adjusting the magnitude of the VREF/2 input (pin 9 or the VCC supply if pin 9 is not used) for a digital output code that is just changing from 1111 1110 to 1111 1111.
17
Functional Description (Continued) conversion in process is not allowed to be completed, therefore the data of the previous conversion remains in this latch. The INTR output simply remains at the ‘‘1’’ level.
2.5.3 Adjusting for an Arbitrary Analog Input Voltage Range If the analog zero voltage of the A/D is shifted away from ground (for example, to accommodate an analog input signal that does not go to ground) this new zero reference should be properly adjusted first. A VIN( a ) voltage that equals this desired zero reference plus (/2 LSB (where the LSB is calculated for the desired analog span, 1 LSB e analog span/256) is applied to pin 6 and the zero reference voltage at pin 7 should then be adjusted to just obtain the 00HEX to 01HEX code transition. The full-scale adjustment should then be made (with the proper VIN(b) voltage applied) by forcing a voltage to the VIN( a ) input which is given by: (VMAX b VMIN) , VIN ( a ) fs adj e VMAXb1.5 256
Ð
2.8 Continuous Conversions For operation in the free-running mode an initializing pulse should be used, following power-up, to ensure circuit operation. In this application, the CS input is grounded and the WR input is tied to the INTR output. This WR and INTR node should be momentarily forced to logic low following a power-up cycle to guarantee operation. 2.9 Driving the Data Bus This MOS A/D, like MOS microprocessors and memories, will require a bus driver when the total capacitance of the data bus gets large. Other circuitry, which is tied to the data bus, will add to the total capacitive loading, even in TRISTATE (high impedance mode). Backplane bussing also greatly adds to the stray capacitance of the data bus. There are some alternatives available to the designer to handle this problem. Basically, the capacitive loading of the data bus slows down the response time, even though DC specifications are still met. For systems operating with a relatively slow CPU clock frequency, more time is available in which to establish proper logic levels on the bus and therefore higher capacitive loads can be driven (see typical characteristics curves). At higher CPU clock frequencies time can be extended for I/O reads (and/or writes) by inserting wait states (8080) or using clock extending circuits (6800). Finally, if time is short and capacitive loading is high, external bus drivers must be used. These can be TRI-STATE buffers (low power Schottky such as the DM74LS240 series is recommended) or special higher drive current products which are designed as bus drivers. High current bipolar bus drivers with PNP inputs are recommended.
(
where: VMAX e The high end of the analog input range and VMIN e the low end (the offset zero) of the analog range. (Both are ground referenced.) The VREF/2 (or VCC) voltage is then adjusted to provide a code change from FEHEX to FFHEX. This completes the adjustment procedure. 2.6 Clocking Option The clock for the A/D can be derived from the CPU clock or an external RC can be added to provide self-clocking. The CLK IN (pin 4) makes use of a Schmitt trigger as shown in Figure 6 .
1 1.1 RC R j 10 kX fCLK j
FIGURE 6. Self-Clocking the A/D
2.10 Power Supplies Noise spikes on the VCC supply line can cause conversion errors as the comparator will respond to this noise. A low inductance tantalum filter capacitor should be used close to the converter VCC pin and values of 1 mF or greater are recommended. If an unregulated voltage is available in the system, a separate LM340LAZ-5.0, TO-92, 5V voltage regulator for the converter (and other analog circuitry) will greatly reduce digital noise on the VCC supply.
Heavy capacitive or DC loading of the clock R pin should be avoided as this will disturb normal converter operation. Loads less than 50 pF, such as driving up to 7 A/D converter clock inputs from a single clock R pin of 1 converter, are allowed. For larger clock line loading, a CMOS or low power TTL buffer or PNP input logic should be used to minimize the loading on the clock R pin (do not use a standard TTL buffer).
2.11 Wiring and Hook-Up Precautions Standard digital wire wrap sockets are not satisfactory for breadboarding this A/D converter. Sockets on PC boards can be used and all logic signal wires and leads should be grouped and kept as far away as possible from the analog signal leads. Exposed leads to the analog inputs can cause undesired digital noise and hum pickup, therefore shielded leads may be necessary in many applications.
TL/H/5671–17
2.7 Restart During a Conversion If the A/D is restarted (CS and WR go low and return high) during a conversion, the converter is reset and a new conversion is started. The output data latch is not updated if the
18
Functional Description (Continued) VREF/2 e 2.560V) can be determined. For example, for an output LED display of 1011 0110 or B6 (in hex), the voltage values from the table are 3.520 a 0.120 or 3.640 VDC. These voltage values represent the center-values of a perfect A/D converter. The effects of quantization error have to be accounted for in the interpretation of the test results. For a higher speed test system, or to obtain plotted data, a digital-to-analog converter is needed for the test set-up. An accurate 10-bit DAC can serve as the precision voltage source for the A/D. Errors of the A/D under test can be expressed as either analog voltages or differences in 2 digital words. A basic A/D tester that uses a DAC and provides the error as an analog output voltage is shown in Figure 8 . The 2 op amps can be eliminated if a lab DVM with a numerical subtraction feature is available to read the difference voltage, ‘‘A – C’’, directly. The analog input voltage can be supplied by a low frequency ramp generator and an X-Y plotter can be used to provide analog error (Y axis) versus analog input (X axis). For operation with a microprocessor or a computer-based test system, it is more convenient to present the errors digitally. This can be done with the circuit of Figure 9 , where the output code transitions can be detected as the 10-bit DAC is incremented. This provides (/4 LSB steps for the 8-bit A/D under test. If the results of this test are automatically plotted with the analog input on the X axis and the error (in LSB’s) as the Y axis, a useful transfer function of the A/D under test results. For acceptance testing, the plot is not necessary and the testing speed can be increased by establishing internal limits on the allowed error for each code.
A single point analog ground that is separate from the logic ground points should be used. The power supply bypass capacitor and the self-clocking capacitor (if used) should both be returned to digital ground. Any VREF/2 bypass capacitors, analog input filter capacitors, or input signal shielding should be returned to the analog ground point. A test for proper grounding is to measure the zero error of the A/D converter. Zero errors in excess of (/4 LSB can usually be traced to improper board layout and wiring (see section 2.5.1 for measuring the zero error). 3.0 TESTING THE A/D CONVERTER There are many degrees of complexity associated with testing an A/D converter. One of the simplest tests is to apply a known analog input voltage to the converter and use LEDs to display the resulting digital output code as shown in Figure 7 . For ease of testing, the VREF/2 (pin 9) should be supplied with 2.560 VDC and a VCC supply voltage of 5.12 VDC should be used. This provides an LSB value of 20 mV. If a full-scale adjustment is to be made, an analog input voltage of 5.090 VDC (5.120–1(/2 LSB) should be applied to the VIN( a ) pin with the VIN(b) pin grounded. The value of the VREF/2 input voltage should then be adjusted until the digital output code is just changing from 1111 1110 to 1111 1111. This value of VREF/2 should then be used for all the tests. The digital output LED display can be decoded by dividing the 8 bits into 2 hex characters, the 4 most significant (MS) and the 4 least significant (LS). Table I shows the fractional binary equivalent of these two 4-bit groups. By adding the voltages obtained from the ‘‘VMS’’ and ‘‘VLS’’ columns in Table I, the nominal value of the digital display (when
4.0 MICROPROCESSOR INTERFACING To dicuss the interface with 8080A and 6800 microprocessors, a common sample subroutine structure is used. The microprocessor starts the A/D, reads and stores the results of 16 successive conversions, then returns to the user’s program. The 16 data bytes are stored in 16 successive memory locations. All Data and Addresses will be given in hexadecimal form. Software and hardware details are provided separately for each type of microprocessor. 4.1 Interfacing 8080 Microprocessor Derivatives (8048, 8085) This converter has been designed to directly interface with derivatives of the 8080 microprocessor. The A/D can be mapped into memory space (using standard memory address decoding for CS and the MEMR and MEMW strobes) or it can be controlled as an I/O device by using the I/O R and I/O W strobes and decoding the address bits A0 x A7 (or address bits A8 x A15 as they will contain the same 8-bit address information) to obtain the CS input. Using the I/O space provides 256 additional addresses and may allow a simpler 8-bit address decoder but the data can only be input to the accumulator. To make use of the additional memory reference instructions, the A/D should be mapped into memory space. An example of an A/D in I/O space is shown in Figure 10 .
TL/H/5671 – 18
FIGURE 7. Basic A/D Tester
19
Functional Description (Continued)
FIGURE 8. A/D Tester with Analog Error Output
TL/H/5671 – 19
FIGURE 9. Basic ‘‘Digital’’ A/D Tester
TABLE I. DECODING THE DIGITAL OUTPUT LEDs
HEX
OUTPUT VOLTAGE CENTER VALUES WITH VREF/2 e 2.560 VDC
FRACTIONAL BINARY VALUE FOR
BINARY
MS GROUP F E D C
1 1 1 1
1 1 1 1
1 1 0 0
1 0 1 0
B A 9 8
1 1 1 1
0 0 0 0
1 1 0 0
1 0 1 0
7 6 5 4
0 0 0 0
1 1 1 1
1 1 0 0
1 0 1 0
3 2 1 0
0 0 0 0
0 0 0 0
1 1 0 0
1 0 1 0
LS GROUP 15/16
15/256
7/8
7/128 13/16
13/256
3/4
3/64 11/16
11/256
5/8
5/128 9/16
1/2
9/256 1/32
7/16
7/256
3/8
3/128 5/16
2/256
1/4
1/64 3/16
3/256
1/8
1/128 1/16
1/256
*Display Output e VMS Group a VLS Group
20
VMS GROUP*
VLS GROUP*
4.800 4.480 4.160 3.840
0.300 0.280 0.260 0.240
3.520 3.200 2/880 2/560
0.220 0.200 0.180 0.160
2.240 1.920 1.600 1/280
0.140 0.120 0.100 0.080
0.960 0.640 0.320 0
0.060 0.040 0.020 0
Functional Description (Continued)
TL/H/5671 – 20
Note 1: *Pin numbers for the DP8228 system controller, others are INS8080A. Note 2: Pin 23 of the INS8228 must be tied to a 12V through a 1 kX resistor to generate the RST 7 instruction when an interrupt is acknowledged as required by the accompanying sample program.
FIGURE 10. ADC0801 – INS8080A CPU Interface
0038
# #
SAMPLE PROGRAM FOR FIGURE 10 ADC0801 – INS8080A CPU INTERFACE C3 00 03 RST 7: JMP LD DATA
# #
# #
0100
21 00 02
START:
LXI H 0200H
0103 0106 0107 0109 010C 010E 010F 0110 0113
31 00 04 7D FE OF CA 13 01 D3 E0 FB 00 C3 OF 01
RETURN:
LXI SP 0400H MOV A, L CPI OF H JZ CONT OUT E0 H EI NOP JMP LOOP
# # # # # 0300 0302 0303 0304
# # # # # # DB E0 77 23 C3 03 01
LOOP: CONT:
# (User program to process data)
# # LD DATA:
; HL pair will point to ; data storage locations ; Initialize stack pointer (Note 1) ; Test # of bytes entered ; If # 4 16. JMP to ; user program ; Start A/D ; Enable interrupt ; Loop until end of ; conversion
# # # # # # IN E0 H MOV M, A INX H JMP RETURN
; Load data into accumulator ; Store data ; Increment storage pointer
Note 1: The stack pointer must be dimensioned because a RST 7 instruction pushes the PC onto the stack. Note 2: All address used were arbitrarily chosen.
21
Functional Description (Continued) It is important to note that in systems where the A/D converter is 1-of-8 or less I/O mapped devices, no address decoding circuitry is necessary. Each of the 8 address bits (A0 to A7) can be directly used as CS inputsÐone for each I/O device.
The standard control bus signals of the 8080 CS, RD and WR) can be directly wired to the digital control inputs of the A/D and the bus timing requirements are met to allow both starting the converter and outputting the data onto the data bus. A bus driver should be used for larger microprocessor systems where the data bus leaves the PC board and/or must drive capacitive loads larger than 100 pF.
4.1.2 INS8048 Interface The INS8048 interface technique with the ADC0801 series (see Figure 11 ) is simpler than the 8080A CPU interface. There are 24 I/O lines and three test input lines in the 8048. With these extra I/O lines available, one of the I/O lines (bit 0 of port 1) is used as the chip select signal to the A/D, thus eliminating the use of an external address decoder. Bus control signals RD, WR and INT of the 8048 are tied directly to the A/D. The 16 converted data words are stored at onchip RAM locations from 20 to 2F (Hex). The RD and WR signals are generated by reading from and writing into a dummy address, respectively. A sample interface program is shown below.
4.1.1 Sample 8080A CPU Interfacing Circuitry and Program The following sample program and associated hardware shown in Figure 10 may be used to input data from the converter to the INS8080A CPU chip set (comprised of the INS8080A microprocessor, the INS8228 system controller and the INS8224 clock generator). For simplicity, the A/D is controlled as an I/O device, specifically an 8-bit bi-directional port located at an arbitrarily chosen port address, E0. The TRI-STATE output capability of the A/D eliminates the need for a peripheral interface device, however address decoding is still required to generate the appropriate CS for the converter.
TL/H/5671 – 21
FIGURE 11. INS8048 Interface SAMPLE PROGRAM FOR FIGURE 11 INS8048 INTERFACE 04 10 04 50 99 FE 81 89 01 B8 20 B9 FF BA 10 23 FF 99 FE 91 05 96 21 EA 1B 00 00 81 A0 18 89 01 27 93
START:
AGAIN:
LOOP:
INDATA:
JMP ORG JMP ORG ANL MOVX
10H 3H 50H 10H P1, #0FEH A, @R1
ORL MOV MOV MOV MOV ANL MOVX EN JNZ DJNZ NOP NOP ORG MOVX MOV INC ORL CLR RETR
P1, Ý1 R0, #20H R1, #0FFH R2, #10H A, #0FFH P1, #0FEH @R1, A I LOOP R2, AGAIN
50H A, @R1 @R0, A R0 P1, #1 A 22
: Program starts at addr 10 ; Interrupt jump vector ; Main program ; Chip select ; Read in the 1st data ; to reset the intr ; Set port pin high ; Data address ; Dummy address ; Counter for 16 bytes ; Set ACC for intr loop ; Send CS (bit 0 of P1) ; Send WR out ; Enable interrupt ; Wait for interrupt ; If 16 bytes are read ; go to user’s program
; Input data, CS still low ; Store in memory ; Increment storage counter ; Reset CS signal ; Clear ACC to get out of ; the interrupt loop
ready decoded 4/5 line is brought out to the common bus at pin 21. This can be tied directly to the CS pin of the A/D, provided that no other devices are addressed at HX ADDR: 4XXX or 5XXX.
Functional Description (Continued) 4.2 Interfacing the Z-80 The Z-80 control bus is slightly different from that of the 8080. General RD and WR strobes are provided and separate memory request, MREQ, and I/O request, IORQ, signals are used which have to be combined with the generalized strobes to provide the equivalent 8080 signals. An advantage of operating the A/D in I/O space with the Z-80 is that the CPU will automatically insert one wait state (the RD and WR strobes are extended one clock period) to allow more time for the I/O devices to respond. Logic to map the A/D in I/O space is shown in Figure 13 .
The following subroutine performs essentially the same function as in the case of the 8080A interface and it can be called from anywhere in the user’s program. In Figure 15 the ADC0801 series is interfaced to the M6800 microprocessor through (the arbitrarily chosen) Port B of the MC6820 or MC6821 Peripheral Interface Adapter, (PIA). Here the CS pin of the A/D is grounded since the PIA is already memory mapped in the M6800 system and no CS decoding is necessary. Also notice that the A/D output data lines are connected to the microprocessor bus under program control through the PIA and therefore the A/D RD pin can be grounded. A sample interface program equivalent to the previous one is shown below Figure 15 . The PIA Data and Control Registers of Port B are located at HEX addresses 8006 and 8007, respectively.
TL/H/5671 – 23
FIGURE 13. Mapping the A/D as an I/O Device for Use with the Z-80 CPU Additional I/O advantages exist as software DMA routines are available and use can be made of the output data transfer which exists on the upper 8 address lines (A8 to A15) during I/O input instructions. For example, MUX channel selection for the A/D can be accomplished with this operating mode.
5.0 GENERAL APPLICATIONS The following applications show some interesting uses for the A/D. The fact that one particular microprocessor is used is not meant to be restrictive. Each of these application circuits would have its counterpart using any microprocessor that is desired. 5.1 Multiple ADC0801 Series to MC6800 CPU Interface To transfer analog data from several channels to a single microprocessor system, a multiple converter scheme presents several advantages over the conventional multiplexer single-converter approach. With the ADC0801 series, the differential inputs allow individual span adjustment for each channel. Furthermore, all analog input channels are sensed simultaneously, which essentially divides the microprocessor’s total system servicing time by the number of channels, since all conversions occur simultaneously. This scheme is shown in Figure 16 .
4.3 Interfacing 6800 Microprocessor Derivatives (6502, etc.) The control bus for the 6800 microprocessor derivatives does not use the RD and WR strobe signals. Instead it employs a single R/W line and additional timing, if needed, can be derived fom the w2 clock. All I/O devices are memory mapped in the 6800 system, and a special signal, VMA, indicates that the current address is valid. Figure 14 shows an interface schematic where the A/D is memory mapped in the 6800 system. For simplicity, the CS decoding is shown using (/2 DM8092. Note that in many 6800 systems, an al-
Note 1: Numbers in parentheses refer to MC6800 CPU pin out. Note 2: Number or letters in brackets refer to standard M6800 system common bus code.
FIGURE 14. ADC0801-MC6800 CPU Interface 23
TL/H/5671 – 24
Functional Description (Continued) 0010 0012 0015 0018 001B 001C 001D 001F 0022 0024 0027 0028 002A 002C 002E 0031 0033 0034 0036 0038 003B 003D 003F
SAMPLE PROGRAM FOR FIGURE 14 ADC0801-MC6800 CPU INTERFACE DF 36 DATAIN STX TEMP2 ; Save contents of X CE 00 2C LDX #$002C ; Upon IRQ low CPU FF FF F8 STX $FFF8 ; jumps to 002C B7 50 00 STAA $5000 ; Start ADC0801 0E CLI 3E CONVRT WAI ; Wait for interrupt DE 34 LDX TEMP1 8C 02 0F CPX #$020F ; Is final data stored? 27 14 BEQ ENDP B7 50 00 STAA $5000 ; Restarts ADC0801 08 INX DF 34 STX TEMP1 20 F0 BRA CONVRT DE 34 INTRPT LDX TEMP1 B6 50 00 LDAA $5000 ; Read data A7 00 STAA X ; Store it at X 3B RTI 02 00 TEMP1 FDB $0200 ; Starting address for ; data storage 00 00 TEMP2 FDB $0000 CE 02 00 ENDP LDX #$0200 ; Reinitialize TEMP1 DF 34 STX TEMP1 DE 36 LDX TEMP2 39 RTS ; Return from subroutine ; To user’s program
Note 1: In order for the microprocessor to service subroutines and interrupts, the stack pointer must be dimensioned in the user’s program.
TL/H/5671 – 25
FIGURE 15. ADC0801 – MC6820 PIA Interface
24
Functional Description (Continued) SAMPLE PROGRAM FOR FIGURE 15 ADC0801 – MC6820 PIA INTERFACE 0010 0013 0016 0019 001A 001D 0020 0021 0023 0025 0028 002B 002C 002E 0031 0033 0034 0036 0038 003A 003D 003F 0040
CE 00 38 FF FF F8 B6 80 06 4F B7 80 07 B7 80 06 0E C6 34 86 3D F7 80 07 B7 80 07 3E DE 40 8C 02 0F 27 0F 08 DF 40 20 ED DE 40 B6 80 06 A7 00 3B 02 00
0042 0045 0047
CE 02 00 DF 40 39
DATAIN
CONVRT
INTRPT
TEMP1 ENDP
PIAORB PIACRB
LDX STX LDAA CLRA STAA STAA CLI LDAB LDAA STAB STAA WAI LDX CPX BEQ INX STX BRA LDX LDAA STAA RTI FDB
#$0038 $FFF8 PIAORB
; Upon IRQ low CPU ; jumps to 0038 ; Clear possible IRQ flags
PIACRB PIAORB
; Set Port B as input
#$34 #$3D PIACRB PIACRB
; Starts ADC0801 ; Wait for interrupt
TEMP1 #$020F ENDP TEMP1 CONVRT TEMP1 PIAORB X $0200 #$0200 TEMP1
LDX STX RTS EQU EQU
$8006 $8007
The following schematic and sample subroutine (DATA IN) may be used to interface (up to) 8 ADC0801’s directly to the MC6800 CPU. This scheme can easily be extended to allow the interface of more converters. In this configuration the converters are (arbitrarily) located at HEX address 5000 in the MC6800 memory space. To save components, the clock signal is derived from just one RC pair on the first converter. This output drives the other A/Ds. All the converters are started simultaneously with a STORE instruction at HEX address 5000. Note that any other HEX address of the form 5XXX will be decoded by the circuit, pulling all the CS inputs low. This can easily be avoided by using a more definitive address decoding scheme. All the interrupts are ORed together to insure that all A/Ds have completed their conversion before the microprocessor is interrupted. The subroutine, DATA IN, may be called from anywhere in the user’s program. Once called, this routine initializes the
; Is final data stored?
; Read data in ; Store it at X ; Starting address for ; data storage ; Reinitialize TEMP1 ; Return from subroutine ; To user’s program
CPU, starts all the converters simultaneously and waits for the interrupt signal. Upon receiving the interrupt, it reads the converters (from HEX addresses 5000 through 5007) and stores the data successively at (arbitrarily chosen) HEX addresses 0200 to 0207, before returning to the user’s program. All CPU registers then recover the original data they had before servicing DATA IN. 5.2 Auto-Zeroed Differential Transducer Amplifier and A/D Converter The differential inputs of the ADC0801 series eliminate the need to perform a differential to single ended conversion for a differential transducer. Thus, one op amp can be eliminated since the differential to single ended conversion is provided by the differential input of the ADC0801 series. In general, a transducer preamp is required to take advantage of the full A/D converter input dynamic range.
25
Functional Description (Continued)
Note 1: Numbers in parentheses refer to MC6800 CPU pin out. Note 2: Numbers of letters in brackets refer to standard M6800 system common bus code.
TL/H/5671 – 26
FIGURE 16. Interfacing Multiple A/Ds in an MC6800 System SAMPLE PROGRAM FOR FIGURE 16 INTERFACING MULTIPLE A/Ds IN AN MC6800 SYSTEM ADDRESS HEX CODE MNEMONICS COMMENTS 0010 DF 44 DATAIN STX TEMP ; Save Contents of X 0012 CE 00 2A LDX #$002A ; Upon IRQ LOW CPU 0015 FF FF F8 STX $FFF8 ; Jumps to 002A 0018 B7 50 00 STAA $5000 ; Starts all A/D’s 001B 0E CLI 001C 3E WAI ; Wait for interrupt 001D CE 50 00 LDX #$5000 0020 DF 40 STX INDEX1 ; Reset both INDEX 0022 CE 02 00 LDX #$0200 ; 1 and 2 to starting 0025 DF 42 STX INDEX2 ; addresses 0027 DE 44 LDX TEMP 0029 39 RTS ; Return from subroutine 002A DE 40 INTRPT LDX INDEX1 ; INDEX1 x X 002C A6 00 LDAA X ; Read data in from A/D at X 002E 08 INX ; Increment X by one 002F DF 40 STX INDEX1 ; X x INDEX1 0031 DE 42 LDX INDEX2 ; INDEX2 x X 26
Functional Description (Continued) SAMPLE PROGRAM FOR FIGURE 16 INTERFACING MULTIPLE A/Ds IN AN MC6800 SYSTEM ADDRESS HEX CODE MNEMONICS COMMENTS 0033 A7 00 STAA X ; Store data at X 0035 8C 02 07 CPX #$0207 ; Have all A/D’s been read? 0038 27 05 BEQ RETURN ; Yes: branch to RETURN 003A 08 INX ; No: increment X by one 003B DF 42 STX INDEX2 ; X x INDEX2 003D 20 EB BRA INTRPT ; Branch to 002A 003F 3B RETURN RTI 0040 50 00 INDEX1 FDB $5000 ; Starting address for A/D 0042 02 00 INDEX2 FDB $0200 ; Starting address for data storage 0044 00 00 TEMP FDB $0000 Note 1: In order for the microprocessor to service subroutines and interrupts, the stack pointer must be dimensioned in the user’s program.
SW1 is closed to force the preamp’s differential input to be zero during the zeroing subroutine and then opened and SW2 is then closed for conversion of the actual differential input signal. Using 2 switches in this manner eliminates concern for the ON resistance of the switches as they must conduct only the input bias current of the input amplifiers. Output Port B is used as a successive approximation register by the 8080 and the binary scaled resistors in series with each output bit create a D/A converter. During the zeroing subroutine, the voltage at Vx increases or decreases as required to make the differential output voltage equal to zero. This is accomplished by ensuring that the voltage at the output of A1 is approximately 2.5V so that a logic ‘‘1’’ (5V) on any output of Port B will source current into node VX thus raising the voltage at VX and making the output differential more negative. Conversely, a logic ‘‘0’’ (0V) will pull current out of node VX and decrease the voltage, causing the differential output to become more positive. For the resistor values shown, VX can move g 12 mV with a resolution of 50 mV, which will null the offset error term to (/4 LSB of fullscale for the ADC0801. It is important that the voltage levels that drive the auto-zero resistors be constant. Also, for symmetry, a logic swing of 0V to 5V is convenient. To achieve this, a CMOS buffer is used for the logic output signals of Port B and this CMOS package is powered with a stable 5V source. Buffer amplifier A1 is necessary so that it can source or sink the D/A output current.
For amplification of DC input signals, a major system error is the input offset voltage of the amplifiers used for the preamp. Figure 17 is a gain of 100 differential preamp whose offset voltage errors will be cancelled by a zeroing subroutine which is performed by the INS8080A microprocessor system. The total allowable input offset voltage error for this preamp is only 50 mV for (/4 LSB error. This would obviously require very precise amplifiers. The expression for the differential output voltage of the preamp is:
Ð
VO e [VIN( a )bVIN(b)] 1 a
X
ä
Y X ä Y
SIGNAL
GAIN
(VOS2 b VOS1 b VOS3 g IXRX)
X
(
2R2 a R1
ä
#1
a
2R2 R1
J
Y X ä Y
DC ERROR TERM GAIN where IX is the current through resistor RX. All of the offset error terms can be cancelled by making g IXRX e VOS1 a VOS3 b VOS2. This is the principle of this auto-zeroing scheme. The INS8080A uses the 3 I/O ports of an INS8255 Programable Peripheral Interface (PPI) to control the auto zeroing and input data from the ADC0801 as shown in Figure 18 . The PPI is programmed for basic I/O operation (mode 0) with Port A being an input port and Ports B and C being output ports. Two bits of Port C are used to alternately open or close the 2 switches at the input of the preamp. Switch
27
Functional Description (Continued)
Note 1: R2 e 49.5 R1 Note 2: Switches are LMC13334 CMOS analog switches. Note 3: The 9 resistors used in the auto-zero section can be g 5% tolerance.
FIGURE 17. Gain of 100 Differential Transducer Preamp
TL/H/5671 – 27
FIGURE 18. Microprocessor Interface Circuitry for Differential Preamp
28
A flow chart for the zeroing subroutine is shown in Figure 19 . It must be noted that the ADC0801 series will output an all zero code when it converts a negative input [VIN(b) t VIN( a )]. Also, a logic inversion exists as all of the I/O ports are buffered with inverting gates. Basically, if the data read is zero, the differential output voltage is negative, so a bit in Port B is cleared to pull VX more negative which will make the output more positive for the next conversion. If the data read is not zero, the output voltage is positive so a bit in Port B is set to make VX more positive and the output more negative. This continues for 8 approximations and the differential output eventually converges to within 5 mV of zero. The actual program is given in Figure 20 . All addresses used are compatible with the BLC 80/10 microcomputer system. In particular: Port A and the ADC0801 are at port address E4 Port B is at port address E5 Port C is at port address E6 PPI control word port is at port address E7 Program Counter automatically goes to ADDR:3C3D upon acknowledgement of an interrupt from the ADC0801 5.3 Multiple A/D Converters in a Z-80 Interrupt Driven Mode In data acquisition systems where more than one A/D converter (or other peripheral device) will be interrupting program execution of a microprocessor, there is obviously a need for the CPU to determine which device requires servicing. Figure 21 and the accompanying software is a method of determining which of 7 ADC0801 converters has completed a conversion (INTR asserted) and is requesting an interrupt. This circuit allows starting the A/D converters in any sequence, but will input and store valid data from the converters with a priority sequence of A/D 1 being read first, A/D 2 second, etc., through A/D 7 which would have the lowest priority for data being read. Only the converters whose INT is asserted will be read. The key to decoding circuitry is the DM74LS373, 8-bit D type flip-flop. When the Z-80 acknowledges the interrupt, the program is vectored to a data input Z-80 subroutine. This subroutine will read a peripheral status word from the DM74LS373 which contains the logic state of the INTR outputs of all the converters. Each converter which initiates an interrupt will place a logic ‘‘0’’ in a unique bit position in the status word and the subroutine will determine the identity of the converter and execute a data read. An identifier word (which indicates which A/D the data came from) is stored in the next sequential memory location above the location of the data so the program can keep track of the identity of the data entered. TL/H/5671 – 28
FIGURE 19. Flow Chart for Auto-Zero Routine
29
3D00 3D02 3D04 3D06 3D07 3D09 3D0B 3D0D 3D0E 3D10 3D13 3D15 3D16 3D17 3D1A 3D1B 3D1D 3D20 3D21 3D23 3D24 3D26 3D29 3D2A 3D2D 3D2E 3D2F 3D30 3D33 3D34 3D37 3D38 3D39 3D3B 3D3D
3C3D 3C3F 3C41 3C42 3C43 3C45 3C48
3E90 D3E7 2601 7C D3E6 0680 3E7F 4F D3E5 31AA3D D3E4 FB 00 C3163D 7A C600 CA2D3D 78 F600 1F FE00 CA373D 47 C3333D 79 B0 4F C3203D A9 C30D3D 47 7C EE03 D3E6
MVI 90 Out Control Port MVI H 01 MOV A,H OUT C MVI B 80 MVI A 7F MOV C,A OUT B LXI SP 3DAA OUT A IE NOP JMP Loop MOV A,D ADI 00 JZ Set C MOV A,B ORI 00 RAR CPI 00 JZ Done MOV B,A JMP New C MOV A,C ORA B MOV C,A JMP Shift B XRA C JMP Return MOV B,A MOV A,H XRI 03 OUT C
# # # DBE4 EEFF 57 78 E6FF C21A3D C33D3D
; Program PPI Auto-Zero Subroutine ; Close SW1 open SW2 ; Initialize SAR bit pointer ; Initialize SAR code Return Start
; Port B 4 SAR code ; Dimension stack pointer ; Start A/D
Loop
; Loop until INT asserted
Auto-Zero ; Test A/D output data for zero Shift B ; Clear carry ; Shift ‘1‘ in B right one place ; Is B zero? If yes last ; approximation has been made
Set C ; Set bit in C that is in same ; position as ‘1‘ in B New C
; Clear bit in C that is in ; same position as ‘1‘ in B ; then output new SAR code. ; Open SW1, close SW2 then ; proceed with program. Preamp ; is now zeroed.
Done
Normal
Program for processing proper data values IN A XRI FF MOV D,A MOV A,B ANI FF JNZ Auto-Zero JMP Normal
Read A/D Subroutine
; Read A/D data ; Invert data ; Is B Reg 4 0? If not stay ; in auto zero subroutine
Note: All numerical values are hexadecimal representations.
FIGURE 20. Software for Auto-Zeroed Differential A/D 5.3 Multiple A/D Converters in a Z-80É Interrupt Driven Mode (Continued) The following notes apply: 1) It is assumed that the CPU automatically performs a RST 7 instruction when a valid interrupt is acknowledged (CPU is in interrupt mode 1). Hence, the subroutine starting address of X0038. 2) The address bus from the Z-80 and the data bus to the Z80 are assumed to be inverted by bus drivers. 3) A/D data and identifying words will be stored in sequential memory locations starting at the arbitrarily chosen address X 3E00. 4) The stack pointer must be dimensioned in the main program as the RST 7 instruction automatically pushes the PC onto the stack and the subroutine uses an additional 6 stack addresses.
5) The peripherals of concern are mapped into I/O space with the following port assignments: HEX PORT ADDRESS PERIPHERAL 00 MM74C374 8-bit flip-flop 01 A/D 1 02 A/D 2 03 A/D 3 04 A/D 4 05 A/D 5 06 A/D 6 07 A/D 7 This port address also serves as the A/D identifying word in the program.
30
TL/H/5671 – 29
FIGURE 21. Multiple A/Ds with Z-80 Type Microprocessor INTERRUPT SERVICING SUBROUTINE SOURCE LOC OBJ CODE STATEMENT COMMENT 0038 E5 PUSH HL ; Save contents of all registers affected by 0039 C5 PUSH BC ; this subroutine. 003A F5 PUSH AF ; Assumed INT mode 1 earlier set. 003B 21 00 3E LD (HL),X3E00 ; Initialize memory pointer where data will be stored. 003E 0E 01 LD C, X01 ; C register will be port ADDR of A/D converters. 0040 D300 OUT X00, A ; Load peripheral status word into 8-bit latch. 0042 DB00 IN A, X00 ; Load status word into accumulator. 0044 47 LD B,A ; Save the status word. 0045 79 TEST LD A,C ; Test to see if the status of all A/D’s have 0046 FE 08 CP, X08 ; been checked. If so, exit subroutine 0048 CA 60 00 JPZ, DONE 004B 78 LD A,B ; Test a single bit in status word by looking for 004C 1F RRA ; a ‘1‘ to be rotated into the CARRY (an INT 004D 47 LD B,A ; is loaded as a ‘1‘). If CARRY is set then load 004E DA 5500 JPC, LOAD ; contents of A/D at port ADDR in C register. 0051 0C NEXT INC C ; If CARRY is not set, increment C register to point 0052 C3 4500 JP,TEST ; to next A/D, then test next bit in status word. 0055 ED 78 LOAD IN A, (C) ; Read data from interrupting A/D and invert 0057 EE FF XOR FF ; the data. 0059 77 LD (HL),A ; Store the data 005A 2C INC L 005B 71 LD (HL),C ; Store A/D identifier (A/D port ADDR). 005C 2C INC L 005D C3 51 00 JP,NEXT ; Test next bit in status word. 0060 F1 DONE POP AF ; Re-establish all registers as they were 0061 C1 POP BC ; before the interrupt. 0062 E1 POP HL 0063 C9 RET ; Return to original program 31
Ordering Information 0§ C TO 70§ C
TEMP RANGE
ERROR
g (/4 Bit Adjusted g (/2 Bit Unadjusted g (/2 Bit Adjusted g 1Bit Unadjusted
0§ C TO 70§ C
0§ C TO 70§ C
b 40§ C TO a 85§ C
ADC0801LCN
PACKAGE OUTLINE
ADC0802LCWM
ADC0802LCV
ADC0802LCN
ADC0803LCWM
ADC0803LCV
ADC0803LCN
ADC0804LCWM
ADC0804LCV
M20BÐSmall Outline
V20AÐChip Carrier
TEMP RANGE g (/4 Bit Adjusted
ERROR
g (/2 Bit Unadjusted g (/2 Bit Adjusted g 1Bit Unadjusted
PACKAGE OUTLINE
ADC0804LCN
ADC0805LCN
N20AÐMolded DIP
b 40§ C TO a 85§ C
b 55§ C TO a 125§ C
ADC0801LCJ ADC0802LCJ ADC0803LCJ ADC0804LCJ
ADC0801LJ ADC0802LJ, ADC0802LJ/883
J20AÐCavity DIP
J20AÐCavity DIP
Connection Diagrams ADC080X Dual-In-Line and Small Outline (SO) Packages
ADC080X Molded Chip Carrier (PCC) Package
TL/H/5671 – 32
TL/H/5671–30
See Ordering Information
32
33
Physical Dimensions inches (millimeters)
Dual-In-Line Package (J) Order Number ADC0801LJ, ADC0802LJ, ADC0801LCJ, ADC0802LCJ, ADC0803LCJ or ADC0804LCJ ADC0802LJ/883 or 5962-9096601MRA NS Package Number J20A
SO Package (M) Order Number ADC0802LCWM, ADC0803LCWM or ADC0804LCWM NS Package Number M20B 34
Physical Dimensions inches (millimeters) (Continued)
Molded Dual-In-Line Package (N) Order Number ADC0801LCN, ADC0802LCN, ADC0803LCN, ADC0804LCN or ADC0805LCN NS Package Number N20A
35
ADC0801/ADC0802/ADC0803/ADC0804/ADC0805 8-Bit mP Compatible A/D Converters
Physical Dimensions inches (millimeters) (Continued)
Molded Chip Carrier Package (V) Order Number ADC0802LCV, ADC0803LCV or ADC0804LCV NS Package Number V20A
LIFE SUPPORT POLICY NATIONAL’S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT DEVICES OR SYSTEMS WITHOUT THE EXPRESS WRITTEN APPROVAL OF THE PRESIDENT OF NATIONAL SEMICONDUCTOR CORPORATION. As used herein: 1. Life support devices or systems are devices or systems which, (a) are intended for surgical implant into the body, or (b) support or sustain life, and whose failure to perform, when properly used in accordance with instructions for use provided in the labeling, can be reasonably expected to result in a significant injury to the user. National Semiconductor Corporation 1111 West Bardin Road Arlington, TX 76017 Tel: 1(800) 272-9959 Fax: 1(800) 737-7018
2. A critical component is any component of a life support device or system whose failure to perform can be reasonably expected to cause the failure of the life support device or system, or to affect its safety or effectiveness.
National Semiconductor Europe Fax: (a49) 0-180-530 85 86 Email: cnjwge @ tevm2.nsc.com Deutsch Tel: (a49) 0-180-530 85 85 English Tel: (a49) 0-180-532 78 32 Fran3ais Tel: (a49) 0-180-532 93 58 Italiano Tel: (a49) 0-180-534 16 80
National Semiconductor Hong Kong Ltd. 13th Floor, Straight Block, Ocean Centre, 5 Canton Rd. Tsimshatsui, Kowloon Hong Kong Tel: (852) 2737-1600 Fax: (852) 2736-9960
National Semiconductor Japan Ltd. Tel: 81-043-299-2309 Fax: 81-043-299-2408
National does not assume any responsibility for use of any circuitry described, no circuit patent licenses are implied and National reserves the right at any time without notice to change said circuitry and specifications.
RIWAYAT HIDUP
Penyusun lahir di Ponorogo, pada tanggal 15 September 1984 sebagai anak pertama dari 3 bersaudara seorang ibu bernama Wiwit Pudjiati dan ayah bernama Moh. Chosin. Saat ini bertempat tinggal di Jl. Panglima Sudirman no.210 Medaeng Waru Sidoarjo.
Riwayat pendidikan formal yang pernah ditempuh: SDN Lomaer1 Blega lulus tahun 1997. SLTPN 1 Taman Sidoarjo lulus tahun 2000. SMA Negeri 5 Surabaya lulus tahun 2003 Polteknik Elektronika Negeri Surabaya - Jurusan Telekomunikasi, Politeknik Elektronika Negeri Surabaya, Institut Teknologi Sepuluh Nopember Surabaya (ITS). Pada tanggal 1 Agustus 2005 mengikuti Seminar Proyek Akhir sebagai salah satu persyaratan untuk mendapatkan gelar Ahli Madya (A.Md.) di Politeknik Elektronika Negeri Surabaya, Institut Teknologi Sepuluh Nopember Surabaya (ITS).