1. GİRİŞ Bu tezin gerçeklenmesindeki amaç, 0˚C-80˚C arasında 1ppm frekans hatasına ve düşük faz gürültüsüne sahip LC osilatör elde etmektir. Frekans hatasını yok etmek için sıcaklık kompanzasyonu sistemi devreye entegre edilmiştir.. Ayrıca sistem üzerinde entegre ile haberleşme imkanı sağlayan I2C portu bulunmaktadır. Sistem içerisinde bulunan band-aralığı referans devresi ve sıcaklık oranlı akım referansı ile lineer kompanzasyon gerçekleştirilerek frekans hatası giderilmeye çalışılacaktır. Yine sistem içerisinde bulunan analog-sayısal (analog-digital converter / ADC) dönüştürücü ve sayısal-analog (digital-analog converter / DAC) dönüştürücü ile nonlineer kompanzasyon gerçekleştirilerek frekans hatası minimum seviyeye indirilecek ve DAC – ADC arasında bir geçiş lojiği bulunacaktır. 1.1 Organizasyon İkinici bölümde, ölçümü gerçekleştirilecek olan referans frekanslı LC osilatör sistemi hakkında genel bilgiler verilecektir. Üçüncü bölümde, I2C protokolü ile ilgili bilgiler verilecek ve aşama aşama USB-I2C dönüştürücü tasarımı anlatılacaktır. Dördüncü bölümde, ölçüm otomasyonunun gerçekleştirleceği NI LabVIEW programı hakkında bilgiler verilecektir. Ölçüm sırasında kullanılcak olan ölçüm aletleri tanıtılacaktır. Bölüm sonunda frekans hatasını gidermek için yapılan lineer ve nonlineer kompanzasyon anlatılacak ve bunlar üzerinde yorumlarda bulunulacaktır. Beşinci bölümde, çalışma süresince öğrenilen bilgiler özetlenecek ve ölçüm sisteminin nasıl daha iyi optimize edilebileceği hakınnda bilgiler verilecektir. 1 2. REFERANS FREKANSLI LC OSİLATÖR Bu bölümde referans frekanslı LC osilatör ölçümlerine başlamadan önce LC osilatör yapısı incelenecek ve sistemin frekans kararlılığını sağlayan unsurlar araştırılacaktır. 2.1 Colpitts LC Osilatör Yapısı Ölçümü gerçekleştirilecek sistem içerisinde diferansiyel Colpitts LC Osilatör yapısı kullanılmıştır. AMS 0.35u teknolojisinde gerçeklenen osilatör topolojisi Şekil 2.1‟de görülmektedir. Şekil 2.1. Diferansiyel Colpitts LC Osilatör yapısı Devre şematiğinden görüldüğü gibi NMOS transistörlerin kaynak ve savak uçları birbirlerine kısa devre edilip aynı zamanda kaynak gerilimleri dışarıdan kontrol edilerek bu transistörlerin bir varaktör gibi davranması sağlanmıştır. Sıcaklık artışıyla birlikte transistörün kaynak gerilimi artacaktır. Gerilimin yükselmesiyle transistör fakirleşmiş rejime girecek ve efektif geçit-kanal kapasite değeri azalacaktır. MOS transistörün akümülasyon,fakirleşmiş ve evirtim rejiminde çalışması durumundaki geçit-kanal kapasitesinin değişimi Şekil 2.2‟de verilmiştir. 2 Şekil 2.2. Geçit-kanal kapasitesinin çalışma bölgelerindeki değişimi [1] Bu varaktörler kullanılarak frekans kaymasını kompanze etmek mümkün olacaktır. Osilatör yapısındaki M3 ve M4 transistörleri geçiş iletkenliği değerlerinin sıcaklığa bağlı olarak değişimini azaltacak şekilde kutuplanmışlardır. Bu yapıdan ölçümler sırasında bahsedilecektir. 2.2. Sıcaklık Kompanzasyonlu LC Colpitts Osilatör Yapısı Ölçümü gerçekleştirilecek olan sıcaklık kompanzasyonlu LC Colpitts Osilatör yapısı Şekil 2.3‟de verilmiştir. Şekil 2.3. Sıcaklık Kompanzasyonlu LC osilatör sistemi 3 Tasarlanan sistemle 0˚C - 80˚C arasında 1ppm frekans kaymasına sahip olan bir LC osilatör elde edilmeye çalışılmıştır. Sistemin üretimi AMS 0.35u teknolojisiyle gerçekleştirilmiştir. Sistemin çalışma şekli şu şekildedir. Sıcaklık bilgisi band-aralığı devresinde bulunan sıcaklık oranlı referans akım üretecinden alınarak bu bilgi yardımıyla sıcaklık oranlı bir gerilim referansı elde edilecektir. Üretilen bu refereans gerilim SAR ADC devresi tarafısında sayısal bilgiye dönüştürülecektir. Bu bilgi sayısal referans tablosu (LUT)‟ a aktarılacaktır. LUT üzerinde bu adrese karşılık düşen kompanzasyon sinyali DAC yapısı ile sıcaklık oranlı referans geriliminden çıkarılacak ya da eklenecektir. Üretimi gerçekleştiren sistemde LUT bulunmamaktadır. DAC‟ın girişleri I2C veri bağlantısıyla dışarıdan kontrol edilebilmektedir. Aynı zamanda SAR ADC çıkışları da I2C veri bağlantısı yoluyla okunabilmektedir. Ölçümler sonucunda SAR ADC girişlerini karşılık düşen DAC girişleri bulunacak ve LUT yapısı oluşturulacaktır. 3. USB – I2C DÖNÜŞTÜRÜCÜ TASARIMI Tasarlanan frekans sentezleyici devresinde sıcaklık kompanzasyonu gerçekleştirebilmek için entegre devre içerisine erişim sağlamaya yarayan I2C protokolü kullanılmıştır. Frekans sentezleyici devresinde bulunan I2C portunun daha verimli ve kolay bir şekilde kullanılabilmesi için USB – I2C dönüştürücü tasarlanmıştır. Tasarım için I2C veri iletişimini destekleyen Arduino Mega 2560 geliştirme kartı kullanılmıştır. 3.1. I2C Protokolü I2C protokolü, veri transferinin gerçekleştirildiği SDA hattı ve saat işareti bilgisinin iletildği SCL hattı olmak üzere iki hattan oluşan, çift yönlü veri transferi sağlayan bir protokoldur. Bu iki hat kaldırma dirençleri ile kaynak gerilimine bağlıdır. Dolayısıyla veri transferinin gerçekleşmediği durumlarda SDA ve SCL hatları lojik „1‟ seviyesindedir. SDA ve SCL hattı open-drain olmalıdır. Böylelikle veri transferi sırasında hatların toprak potansiyeline çekilmesi mümkün olmaktadır. I2C protokolünde iletişim hattının basitleştirilmiş şematiği Şekil 3.1‟ de görülmektedir. 4 Şekil 3.1. İki devre arasındaki I2C veri paylaşım hattının basitleştirilmiş görüntüsü I2C protokolünde veri transferi sırasında ana ve uydu, alıcı veya verici olarak çalışabilmektedir. Her bir uydunun kendine has bir adresi bulunmaktadır. Dolayısıyla bir ana devre ile birden çok uydu devresi arasında veri transferi mümkün olmaktadır. I2C veri transferi prosedürünün özelllikleri aşağıda belirtilmiştir. SDA hattı üzerinden aktarılan verinin geçerli olabilmesi için SCL hattı lojik „1‟ seviyesinde olmalıdır. Dolayısıyla SDA hattı sadece SCL hattının lojik „0‟ olduğu anlarda faz değiştirmektedir. Böylece yanlış bir veri aktarımı söz konusu olmamaktadır. Veri transferi gerçekleşmeden önce SDA ve SCL hatları lojik „1‟ seviyesindedir. Veri transferi, SCL hattı lojik „1‟ seviyesinde iken SDA hattının lojik „1‟ seviyesinden lojik „0‟ seviyesine geçişi ile başlar. Yine SCL hattı lojik „1‟ iken SDA hattının lojik „0‟ dan lojik „1‟ seviyesine geçişi ile veri transferi sonlanır. Veri transferinin başlaması ve sonlanması ana devre tarafından gerçekleştirilir. 5 Veri transferi ana devre tarafından başlatıldıktan sonra SDA hattı üzerinden yazma ya da okuma işlemi gerçekleştirilebilir. Her iki durumda da ilk olarak veri transferinin sağlanacağı uydu adresi bilgisi gönderilmelidir. Uydu adresi 7 bitlik bir veriden oluşmaktadır ve yedi saat işareti boyunca adres bilgisi SDA hattı üzerinden gönderilir. Sekizinci saat işaretinde yazma ya da okuma biti gönderilir. Yazma işlemi için SDA hattı lojik „0‟, okuma işlemi içinse SDA hattı lojik „1‟ olmalıdır. Dokuzuncu saat işaretinde ise ana devre SDA hattını bırakır ve kaldırma dirençleri ile SDA hattı lojik „1‟ seviyesine gelir, eğer uydu devresi doğru adres ile belirtilmişse SDA hattı uydu tarafından lojik „0‟ seviyesine çekilir. Dokuzuncu saat işareti sırasında gerçekleşen bu durum ACK fazı olarak adlandırılmaktadır. ACK fazı tamamlandıktan sonra yazma veya okuma durumuna göre ana devre tarafından bilgi aktarımı ya da uydu devre tarafından bilgi aktarımı gerçekleşmektedir. Sekiz bitlik veri transferi gerçekleştikten sonra, dokuzuncu saat işaretinde ACK fazı tekrarlanmaktadır. Yazma durumunda ana devre SDA hattını bırakır ve SDA hattı lojik „1‟ seviyesine çekilir ve uydu tarafından SDA hattının lojik „0‟ seviyesine çekilmesi beklenir. Okuma durumda ise uydu SDA hattını bırakır ve ana devre SDA hattını lojik „0‟ seviyesine çeker. Dokuzuncu saat işareti sırasında ACK fazı doğru gerçeklenmez ve SDA hattı lojik „1‟ seviyesinde kalırsa veri transferi sonlanır. Şekil 3.2 ve Şekil 3.3‟de yazma ve okuma işlemleri sırasında gerçekleşen veri transferinin işleyişi görülmektedir. Şekil 3.2. I2C yazma işlemi 6 Şekil 3.3. I2C okuma işlemi Şekil 3.2 ve Şekil 3.3‟de görülmekte olan B, başlatma bitini, Y, yazma bitini, R, okuma bitini, A, ACK fazında gerçekleşen alındı bilgisi bitini, Ā ise yine ACK fazında gerçekleşen alındı bilgisi bitinin lojik tersini belirtmektedir. Okuma işlemi sırasında son verinin A yerine Ā ile alındı bilgisini göndermesinin sebebi, okuma işlemi sırasında alındı bilgilerinin ana devre tarafından gönderiliyor olmasıdır. Ayrıca okuma işleminin diagramını gösteren Şekil 3.3‟den görüldüğü gibi işlemin ilk 9 saat işareti boyunca ana devre verici, uydu ise alıcı rolundedir. Ardından roller değişerek ana devre alıcı, uydu ise verici konumuna geçmektedir. Fakat I2C veri transferi sırasında saat işareti herzaman ana devre tarafından üretilmektedir. 3.2 Seri Port – I2C Dönüştürücü Tasarımı Seri Port - I2C dönüştürücü tasarımına başlamadan önce, LC Osilatör içerisindeki I2C portunun çalışması incelenmiştir. Yazma işlemi sırasında gönderilen ilk 8 bitlik veri sistem içerisindeki hafıza elemanın adresini belirtmekte ve ikinci 8 bitlik veri ise bu adrese yazılacak olan veriyi belirtmektedir. Okuma işlemi sırasında gönderilen ilk 8 bitlik veri okuma işleminin yapılacağı hafıza adresini belirtmektedir. Her bir okuma işlemi sonrasında hafıza elemanın adresi bir artmaktadır. Dolayısıyla okuma işlemi için başlangıç adresi gönderildikten sonra istenilen sayıda veri okunması mümkündür. USB - I2C dönüştürücü tasarımında kullanılan Arduino Mega 2560 geliştirme kartının bilgisayar ile haberleşmesi USB bağlantısı üzerinden gerçekleşmektedir. Kartın USB bağlantısı üzerinden yine kart üzerinde bulunan seri porta erişmek mümkündür. Yine kart üzerinde bulunan SCL ve SDA veri çıkış hatları ile LC osilatör üzerindeki I2C portu ile haberleşmek mümkündür. Dolayısıyla seri port programlama yoluyla Arduino Mega 2560 kartını bir USB - I2C dönüştürücü olarak kullanmak mümkündür. 7 3.2.1 Windows Seri Port Programlama Seri Port - I2C dönüştürücü tasarımında ilk olarak seri port programlamayı gerçekleştirecek bir Windows uygulaması yazılmıştır. Windows üzerinden seri port programlama, seri portun iletişime açılması, seri portun yapılandırılması, seri porta yazma veya seri porttan okuma yapılması ve seri portun iletişime kapatılması olmak üzere 4 aşamadan oluşmaktadır. Bu yüzden öncelikle bu dört aşamayı gerçekleştiren fonksiyonlar yazılmıştır. Ardından belirli girdileri arguman olarak alacak bir 2 program yazılmıştır. Programın argumanlarını I C veri transferi sırasında gerekli olan uydu adresi, yazma-okuma seçimi, gönderilecek veri sayısı, ve gönderilecek veriler oluşturmaktır. Ayrıca seri port iletişim için gerekli olan seri port adresi de programın argumanlarından biri olacaktır. Programın çalışması sırasında I2C ve seri port arasında senkronizasyonu sağlayabilmek için okuma ve yazma işlemleri sırasında gönderilen veya alınan veri sayıları düzenli bir şekilde kontrol edilmiştir. Böylelikle I2C – Seri port veri aktarım hızlarından dolayı oluşabilecek veri kayıpları veya iletişim hataları yok edilmiştir. Program C++ dilinde yazılıp, MATLAB, NI LabVIEW gibi programlarda kolaylıkla kullanılabilmek için çalıştırılabilir program haline getirilmiştir. Yazılan program cd içeriğinde verilmiştir. 3.2.2 Arduino Mega 2560 ile Seri Port - I2C Dönüştürücü Tasarımı C++ ortamında seri port programlamayı gerçekleştiren programın oluşturulmasının ardından, bu programla senkronize bir şekilde haberleşip programın girdilerini I2C iletişiminde kullanacak bir başka programın Arduino Mega 2560 kartı içerisine yüklenmesi gerekmektedir. Dönüştürücü tasarımında ilk olarak I2C protokulündeki yazma veya okuma işlemleri incelenmiştir. Bölüm 3.1‟de anlatıldığı gibi I2C protokolünde yazma yada okuma işlemini gerçekleştirmek için uydu adresi bilgisinden sonra gönderilen bir seçim biti bulunmaktadır. Bu yüzden Arduino Mega 2560 kartına yüklenecek olan programda yazma yada okuma seçimini yapabilmek için bir kontrol mekanizmasına ihtiyaç vardır. C++ ortamında oluşturulan programın girdilerinden biri olan “r” veya “w”, girdisi Arduino Mega 2560 kartındaki programın kontrol mekanizmasını oluşturmuştur. Yazılan program ekler kısmında verilmiştir. 8 Arduino Mega 2560 kartı programlanmasının ardından, windows üzerinde çalıştırılabilir bir program vasıtasıyla çalışan USB - I2C dönüştürücü elde edilmiştir. Fakat Arduino Mega 2560 kartının beslemesi USB tarafından sağlandığı için SDA ve SCL işaretlerinin lojik “1” seviyesi 5V iken LC osilatör içerisindeki I2C portunun lojik “1” seviyesi 3.3V‟dur. Bu sorunu çözebilmek için 5V-3.3V DC-DC dönüştürücü tasarlanmıştır. Tasarlanan dönüştürücü Şekil 3.4‟de görülmektedir. Şekil 3.4. 5V – 3.3V I2C dönüştürücü M1 ve M2 transistörlerin geçitleri 3.3V‟a bağlı oldukları için herzaman iletimdedirler. SDA(5V) ve SCL(5V) veri hatlarının lojik “1” seviyesinde olduğunu varsayalım. M1 ve M2 transistörlerinin savak ucu yüksek, kaynak ucu düşük potansiyelde olacağından, NMOS transistör için savak ve kaynak ucu yer değiştirmeyecek Şekil 3.4‟de belirtildiği gibi kalacaktır. Transistörlerin kaynak ucu geçit potansiyelinin bir eşik gerilimi kadar aşağısında olacaktır. Dolayısıyla 3.3V I2C aygıtının girişinde bulunan sürücülerin giriş gerilimleri 3.3V‟dan bir eşik gerilimi aşağıda olacaktır. 3.3V I2C aygıtının giriş sürücülerin eşik gerilimlerinin yaklaşık olarak 1.65V olduğu düşünülürse, sürücülerin giriş gerilimlerinin 1.65V „dan büyük olması gerektiği aşikardır. Bu nedenle M1 ve M2 transistörlerinin eşik gerilimleri(VT) 1V mertebelerinde olmalıdır. M1 ve M2 transistörleri ayrık devre elemanı olarak seçildiği için eşik gerilimi dağılımı çok düzensiz olabilmektedir. Eşik gerilimi maksimum 1.8V olarak belirtilmiş BS107 Mosfet transistörlerinin eşik gerilimleri ölçülmüş ve 1V mertebesinde eşik gerilimi olan iki transistör ile tasarıma devam edilmiştir. Tasarım aşamasında dikkat edilmesi gereken ikinci parametre Rk kaldırma dirençlerinin değeridir. Kaldırma dirençlerinin değerine göre SDA ve SCL işaretlerinin yükselme süresi değişmektedir. 9 Bölüm 3.1‟de belirtildği gibi I2C protokolünde SDA lojik geçişleri herzaman saat işaretinin lojik “0” seviyesinde gerçekleşmelidir. Bu bakımdan çok büyük seçilen bir Rk direnci veri iletişimini bozabilir. Devrenin tasarımında ilk olarak 10k Ω‟luk dirence sahip iki kaldırma direnci kullanılmıştır. SDA ve SCL hattının lojik geçişleri incelendiğinde yükselme süresinin yeterince hızlı olmadığı görülmüştür. Bunun üzerine direnç değerleri 2.2k Ω yapılarak yükselme süresi tekrar incelenmiş ve yükselme süresi yeterli görülmüştür. 5V-3.3V I2C dönüştürücü tasarandıktan sonra USB-I2C devresini test edebilmek için MATLAB ortamında GUI (Graphical User Interface) yazımına gidilmiştir. GUI oluşturulduktan sonra USB – I2C dünüştürücü üzerinden bilgisayar ve LC osilatör arasında iletişim kurulmuştur. İletişimde sırasında bilgisayar üzerinden girilen veriler ile I2C veri hattında iletilen verilerin doğruluğunu incelemek için SDA ve SCL hattı Textronix DPO4000B marka karışık işaret osiloskopuna bağlanmış ve veri transferi doğrulanmıştır. 4. REFERANS FREKANSLI LC OSİLATÖR ÖLÇÜMÜ LC osilatör ile bilgisayar arasında I2C protokolü üzerinden iletişim sağlandıktan sonra, ölçüm sistemlerin NI LabVIEW ortamında kurulmasına geçilmiştir. Sıcaklık kararlılığı 1ppm LC osilatör elde etmek için yapılacak ölçümlerin sistematik bir düzene oturtulması gerekmektedir. Bu yüzden ölçümler sırasında kullanılacak olan ölçüm aletlerinin NI LabVIEW ortamında kullanılması için gerekli programlar yazılmıştır. 4.1. NI LabVIEW LabVIEW, (Laboratory Virtual Instrument Engineering Workbench), endüstriyel alanlar, akademik alanlar ve araştırma labaratuvarlarında ölçü aletlerinin otamasyonunu ve kontrolünü sağlamak üzere kullanılan, grafik arayüzlü bir programlama dilidir. Bu özelliği ile C, C++ veya Java gibi bilinen programlama dillerinden ayrılmaktadır. Fakat LabVIEW bir programlama dilinden çok daha fazlasını yapabilme kapasitesine sahiptir. LabVIEW üzerinde oluşturulan bir programın .vi (Virtual Instrument) uzantısına sahiptir. Virtual Instrument ismi LabVIEW ortamında herhangi bir standart ölçüm aletinin işlevselliğini belirten bir 10 program yazılabilmesi ve bu programın bir sistem üzerinde ölçüm aleti olarak rahatlıkla kullanılabilmesinden gelmektedir. Aynı zamanda LabVIEW üzerinden laboratuvar ölçüm aletleri ile uzaktan kontrolünü sağlayan seri port, GPIB , Ethernet üzerinden haberleşme protokolleri için tanımlanmış kütüphaneler bulunmaktadır. Yine LabVIEW ortamında bulunan IDN servisi üzerinde yaklaşık 3000 ölçüm aletinin LabVIEW sürücüsü bulunmaktadır. Bu sürücürin dışında, üretici firmaların kendi geliştirdiği uzaktan erişim protokollerini LabVIEW ortamında kullanmak mümkündür. LabVIEW ortamında oluşturulan bir program, Front Panel (Ön panel), Block Diagram(Blok Diyagramı) olmak üzere iki ana bölümden oluşmaktadır. Ön Panel; yazılmış olan programın interaktif kullanıcı arayüzüdür. Blok diyagram; oluşturulan programın kaynak kodudur. Bu kod grafik arayüzlü programlama dili ile oluşturulmuş ve okunması çok kolay bir koddur. Ön panelde bulunan bütün veri girdi ve çıktılarının blok diyagram üzerinde kendisine karşılık olan bir bağlantısı bulunmaktadır. Şekil 4.1‟de bir sinyalin kendisi ve farklı pencereleme fonksiyonlarından yararlanılarak elde edilen FFT verisi LabVIEW ön paneli üzerinde görülmektedir. Bu fonksiyonu gerçekleyen blok diagram ise Şekil 4.2‟de görülmektedir. Şekil 4.1. LabVIEW ön panel görünümü 11 Şekil 4.2. LabVIEW blok diagram görünümü Ön Panel üzerinde görülmekte olan Frekans değişimini sağlayan kaydırıcı, sinyalin zaman domeninde görünümü ve FFT veri çıktısı, blok diyagram üzerinde aynı isimlerle görülmektedir. 4.1.1 NI LabVIEW Ortamında Ölçüm Aletlerinin Uzaktan Kontrolu LabVIEW programlama aracı olarak kullanıldığı gibi, gerçek zamanlı simulasyonların yapıldığı sistemlerde ölçüm sistemlerine uzaktan erişebilme yapısıyla otomasyon alanında da oldukça yaygın kullanıma sahiptir. Otamasyon veya uzaktan kontrol aşamasında LabVIEW ortamında seri port haberleşme, GPIB üzerinden haberleşme, ağ üzerinden haberleşme olmak üzere 3 farklı şekilde haberleşme sağlamak mümkündür. Aynı zamanda farklı firmalar ve National Instruments tarafından sunulan LAN – GPIB, Seri port – GPIB gibi dönüştürücülerde bulunmaktadır. Bunun sebebi GPIB haberleşme protokulunun diğer iki haberleşme protokulune göre çok daha kolay yapılabilmesidir. Bu yüzden uzaktan erişim için kullanılacak protokol olarak GPIB protokolü seçilmiştir. Ardından LC osilatör ölçümünde kullanılacak ölçüm aletlerinin uzaktan kontrolünü sağlamak için GPIB bağlantıları yapılmış ve yapılandırılmıştır. 12 4.1.1.1 GPIB ve VISA Protokolu GPIB (General Purpose Interface Bus), 1960‟lı yıllarda Hewlett Packard tarafından geliştirilmiş bir protokoldür. Bu protokol aracalığıyla bilgisayarlar ve ölçüm aletleri arasında haberleşme mümkün olmaktadır. 1975 yılında GPIB protokolü IEEE tarafından standart hale getirilmiş ve IEEE 488 standartı adını almıştır. GPIB protokolünde veriler bir baytlık paketler halinde gönderilir. Gönderilmek istenen ana mesaj bu bir baytlık paketlerden oluşan ASCII karakter verilerine göre oluşmuştur. Bu ASCII karakterlerde oluşan dizinin gerçekleştirdiği fonksiyon haberleşmeyi gerçekleştiren cihazlar arasında kodlanmıştır. GPIB bağlantı kabloları seri bir şekilde birbrine bağlanabilmektedir. Böylece aynı GPIB hattına birden fazla ölçüm aleti ve bilgisayarın bağlanması mümkün olamktadır. Her bir ölçüm aletine veya bilgisayarın GPIB bağlantı arayüzünü gerçekleştiren cihaza ait GPIB adresi bulunmaktadır. Bu GPIB adresi 0 ila 30 arasında yer almaktadır. Dolayısıyla bir GPIB hattı üzerinden 30 farklı aleti kontrol etmek mümkün olmaktadır. 0 numaralı adres genellikle bilgisayarın GPIB bağlantı arayüzünü sağlayan cihaza aittir. Diğer tüm adresler ölçüm aletlerine aittir ve her ölçüm aletinin GPIB adresi kendisine istenilen bir numara olarak atanabilmektedir. Kurulan ölçüm sisteminde bilgisayarın GPIB bağlantı arayüzünü sağlamak için National Instruments firmasına trafından üretilen NI GPIB-ENET/100 cihazı kullanılmıştır. Bu cihaz ile bilgisayarın ethernet portu üzerinden, GPIB protokulunde haberleşmesini sağlamak mümkün olmaktadır. NI GPIB-ENET/100 cihazı ile bilgisayar bağlantıları yapıldıktan sonra, kullanılacak ölçüm aletlerinin aynı cihaz ile GPIB bağlantıları gerçekleştirilmiş ve her cihaza farklı bir GPIB adresi ataması gerçekleştirilmiştir. LabVIEW ortamında GPIB haberleşmesini sağlamak için VISA standartı kullanılmaktadır. Bu yüzden için LabVIEW üzerinden GPIB haberleşmesi gerçekleştirmek için NI-VISA kütüphanesinin LabVIEW ortamında bulunması gerekmektedir. VISA nesne tabanlı bir programlama dilidir. Basit olarak VISA standartı üzerinden GPIB adresi ile iletişimi açma, yazma, okuma, iletişimi kapatma gibi işlemler gerçekleştirilmektedir. VISA standartı sadece GPIB protokolü için geçerli olmayıp aynı zamanda Seri – Port iletişim sırasında da LabVIEW ortamında 13 kullanılan standarttır. Aynı zamanda VISA standartı ile yazılmış bir program C, CVI, C++ gibi birçok ortamda da kullanılabilmektedir. Bu sebeplerden ötürü VISA programlama dili ölçüm aletlerinin sürücülerini yazmak için kullanılan dildir. LabVIEW sürücüsü bulunmayan bazı ölçüm aletleri ile GPIB protokulü üzerinden iletişim kurabilmek için VISA programlama dilinin kullanılması gerekmektedir. 4.1.1.2 Ölçüm Aletlerinin Programlanması Ölçüm aletlerinin LabVIEW üzerinden programlanması için gerekli bağlantılar yapıldıktan sonra, kullanılacak her bir ölçüm aletinin LabVIEW üzerinden IDN* sorgulaması yapılmıştır. VISA standartı üzerinden gerçekleştirilen bu sorgulamaya cihazlar, bir söz dizimi halinde modellerini belirtmektedirler. Bağlantıların sağlandığı görüldükten sonra ölçüm aletlerinin LC osilatör ölçümü sırasında planlanan kullanımı için programlar yazılmıştır. 4.1.1.2.1 Agilent N6705A Agilent N6705A üzerinde 4 kanallı çıkış bulunduran DC güç analizörüdür. Normal güç kaynaklarına nazaran akım limitli oluşu , kendi kendisini kapatabilmesi ve düşük gürültülü kaynaklara sahip olması nedeniyle kullanılmıştır. LC osilatör içerisinde bulunan 3.3V DC kaynak gerilimi, 2.5V DC LC osilatör kutuplama gerilimi, Sıcaklık orantılı gerilim referansı oluşturmada kullanılan kuvvetlendiricinin gerilim referansı ve programlanabilir kuvvetlendiricinin gerilim referansı olmak üzere 4 gerilim bu ölçüm aletinden üretilecektir. Burada dikkat edilmesi gereken Agilent N6705A içerisinde bulunan yüksek hassasiyetde çıkış veren 2 kanaldan birinin LC osilatörün kutuplama gerilimi, diğerinin ise sıcaklıkla orantılı gerilim referansı için kullanılan kuvvetlendiricin referans gerilimi olarak kullanılmasıdır. Böylelikle gerilim değerlerindeki oynamalardan kaynaklanabilecek hatalar en aza indirilmiştir. LabVIEW IDN programı ile Agilent N6705A ölçüm aletinin sürücüleri LabVIEW ortamına yüklenmiştir. Ardından Şekil 4.3‟de görülmekte olan çıkış işaretlerini devre dışı bırakmaya veya devreye sokmaya yarayacak ve bu işlemleri gerçekleştirirken atanan akım limitleri, gerilim seviyeleri gibi değerleri yeniden ayarlamayan, eski verileri kullanan bir program yazılmıştır. Böylelikle Agilen N6705A ölçüm aleti için istenilen seviyeler ayarlandıktan sonra, devreye giden gerilimleri uazaktan devre dışı bırakmak veya devreye sokmak mümkün olmuştur. 14 Şekil 4.3. Agilent N6705A all output enable disable Bu programın yanısıra sıcaklık orantılı gerilim referansının değerinin belirlenmesi sırasında Agilent N6705A ölçüm aletinin kanallarının gerilim seviyeleri değiştirilmesi gerekecektir. Bu yüzden bu işlemi sağlayan Şekil 4.4‟de görülmekte olan program yazılarak, uzaktan erişimle istenilen kanalın seviyesini değiştirmek mümkün olmuştur. Şekil 4.4. Agilent N6705A gerilim seviyesi 4.1.1.2.2 Agilent E5052 Agilent E5052 çok yüksek hassasiyetde faz gürültüsü ölçümü gerçekleştirebilen bir sinyal kaynağı analizörüdür. Tüm ölçümlerin sırasında LC osilatörün faz gürültüsünü istenilen hassasiyet de ölçebilmek için kullanılacaktır. Faz gürültüsü ölçümü için Agilent E5052 LabVIEW sürücülerinden yararlanılarak oluşturulan program Şekil 4.5‟de görülmektedir. 15 Şekil 4.5. Agilent E5052 phase noise 4.1.1.2.3. Agilent 3458A Agilent 3458A yüksek hıza ve yüksek hassasiyete sahip bir multimetredir. 8.5 rakamlık hassasiyeti ile on milyonda birlik bir değişimin görülebilmesi sağlamaktadır. Agilent 3458A, band aralığı devresinin gerilim ve akım referanslarının ölçülmesi sırasında kullanılacaktır. Aynı zamanda üretilen sıcaklık oranlı gerilim referansının ölçümünde kullanılacaktır. Bu yüzden yüksek hassassiyet aranması söz konusudur. Üretilen band aralığı referans gerilimin on milyonda birlik hassasiyetten daha büyük değişimlere sahip olacağı aşikardır. Bu yüzden gerilim ölçümü için Agilent 3458A ölçüm aletinin LabVIEW sürüclerinden yararlanılarak bir program oluşturulmuştur. Bu program istenilen sayıda ölçümü istenilen hassasiyette gerçekleştirmekte ve ardından istatiksel fonksiyonlar ile gerilim değerinin ortalamasını çıkış olarak oluşturmaktadır. Böylece farklı zamanlarda yapılcak ölçümler arasındaki hata payının azalaağı aşikardır. Şekil 4.6‟da oluşturulan program görülmektedir. Şekil 4.6. Agilent 3458A akım ve gerilim ölçüm programı 16 4.1.1.2.4 Keithley 2000 Keithley 2000 6.5 rakamlık bir hassasiyetle ölçüm gerçekleştirebilen bir multimetredir. Multimetre, entegre devrenin test çıkış pinlerine bağlanarak istenilen noktada istenilen gerilim veya akım seviyesinin görülüp görülmedğini kontrol etmek amacıyla kullanılacaktır. Bu yüzden hata payı gibi değerler söz konusu değildir. İstatiksel ölçüme gitmek yerine sadece tek bir ölçüm yapmak yeterli olacaktır. Ölçüm aletinin LabVIEW sürücüleri yardımıyla oluşturulan program Şekil 4.7‟de görülmektedir. Şekil 4.7. Keithley 2000 akım ve gerilim ölçümü 4.1.1.2.5 Rohde & Schwarz FSU26 Rohde & Schwarz FSU26, 10Hz –26.5GHz‟lik geniş bir frekans tarama alanına sahip bir spektrum analizörüdür. 0.1Hz‟lik hassasiyetde frekans tarama özellğine sahiptir. Bu yüzden LC osilatörün frekans kararlılığını incelemek için ideal bir ölçüm aletidir. 0.1Hz‟lik hassasiyetin spektrum analizöründeki sinyal sayıcı özelliğinin açılması sonucu elde edilebilmektedir. Hedeflenen 1ppm frekans kararlılığına sahip osilatör için bu hassasiyet değerinin 1Hz olarak seçilmesi yeterli olmaktadır. LabVIEW sürücülerinden ve Rohde&Schwarz yardım dosylarından yararlanılarak oluşturulan frekans ölçüm programı Şekil 4.8‟de görülmektedir. 17 Şekil 4.8. Rohde&Schwarz FSU26 frekans ölçümü Frekans ölçümü sırasında Sinyal sayıcı özelliğinin açılması sonucu 1Hz lik hassasiyette ölçüm yapabilmek mümkün olmaktadır. Yine frekans kararlılığının sağlanması için yazılan program içerisinde ölçüm aletinin bir saniyelik aralıklarla örnek almasını sağlanmış ve alınacak örnek sayısı kullanıcı tarafından girilecek şekilde ayarlanmıştır. Böylelikle elde edilen ölçümlerdeki hata payı azaltılmıştır. 4.1.1.2.6 Espec BTZ –175 Espec BTZ –175, entegre devrenin sıcaklığını arttırıp azaltmak için kullanılcak olan, nem oluşturmayan bir endüstriyel fırındır. Fırın üzerinde GPIB bağlantısı bulunmamakta sadece MODBUS protokolü ile RS-232 portundan iletişim sağlanabilmektedir. Bu yüzden ICS Electronic firması tarafından geliştirilmiş olan GPIB – MODBUS dönüştürücü cihazı kullanarak Espec BTZ –175 ile iletişime geçmek düşünülmüştür. LabVIEW IDN ortamında ölçüm aleti ile ilgili herhangi bir sürücü bulunmamıştır. Bu yüzden ölçüm aletinin MODBUS protokolündeki haberleşme verileri incelenmiş ve VISA programlama dili ile GPIB üzerinden programlamaya karar verilmiştir. VISA programlama dilinin MODBUS ve RS-232 protokolleri ile uyumlu olmasından yararlanılarak bunu gerçekleştirmek mümkündür. VISA diliyle yazılan kod GPIB üzerinden ICS Electronics firmasının 4899A GPIB – MODBUS dönüştürücüsü yardımıyla aynı şekilde MODBUS protokulne aktarılcaktır. Buradan RS-232 portu üzerinden fırını kontrol etmek mümkün olmaktadır. LabVIEW ortamında VISA-Write ve VISA-Read fonksyionları kullanılarak Şekil 4.9‟da görülmekte olan program oluşturulmulştur. 18 Program oluşturulurken ilk olarak istenilen sıcaklık değeri fırına yazılmış ve ardından ikişer saniye aralıklarla fırının sıcaklığı ölçülmüştür. Fırının sıcaklığı istenilen sıcaklık değerine gelene kadar bu ölçüme devam edilmiştir. İstenilen sıcaklık sağlandıktan sonra on beş dakikalık bir bekleme zamanı programa eklenmiştir. Bunun sebebi fırın içerisindeki sıcaklık ile entegre devrenin sıcaklığının birebir aynı olmamasıdır. Şekil 4.9. Espec BTZ –175 sıcaklık kontrolü 4.2 LİNEER KOMPANZASYON Lineer kompanzasyon işleminden önce, tasarlanan USB – I2C dönüştürücüyü LabVIEW ortamında kullanabilmek için bir program yazılmıştır. LabVIEW içerisinde bulunan Math-script ortamından yararlanılarak I2C üzerinden okuma ve yazma işlemi gerçekleştiren iki farklı program yazılmıştır. Yazılan programlar Ekler bölümünde mevcuttur. Böylece ölçüm işlemlerinde kullanılacak tüm alt programların yazımı tamamlanmıştır. Lineer kompanzasyon üç aşamadan oluşmaktadır. İlk olarak Band-aralığı referans devresinin ve sıcaklık oranlı akım devresinin ölçümleri gerçekleştirelecektir. Ardından LC osilatörün kutuplama geriliminin optimizasyonu gerçekleştirilecektir. Son olarak varaktörlerin gerilim kontrolünü sağlayan sıcaklık oranlı gerilim referansının ölçümü ile lineer kompanzasyon sonuçlandırılacaktır. 19 4.2.1 Band – Aralığı Referans Devresinin Ölçümü Lineer kompanzasyonun ilk aşaması olarak band-aralığı referans devresinin ölçümü gerçekleştirilmiştir. LC osilatörün içerisindeki akım referanslarının üretildiği devre olan band-aralığı devresinin kararlılığı lineer kompanzasyon için önemlidir. Sıcaklık oranlı gerilim referansının üretilmesi sırasında kullanılacak olan kutuplama akımı ve sıcaklık oranlı akım referansları band-aralığı referans devresinden üretilmektedir. Dolayısıyla bu akım referansının sıcaklık kararlılığı en yüksek seviyede olmalıdır. Şekil 4.10‟dan görüldüğü gibi band-aralığı referans devresinden üretilen kutuplama akımı, gerilim referansının bir direnç üzerine düşürülmesiyle elde edilmiştir. Direncin sıcaklık katsayısı değiştirilemeyeceği için gerilim referansının sıcaklık katsayısı minimum seviyede tutulmalıdır. Şekil 4.10. Bant – Aralığı referans devresi Devreden üretilen referans geriliminin değerini ve sıcaklık katsayısını gösteren denklemler aşağıda verilmiştir. 20 VBG VBE 2VT ln(n) RV TRIM Rcons (4.1) dVBG dVBE R dV 2 T ln(n) V TRIM dT dT dT Rcons (4.2) Denklemden görüldüğü gibi negatif sıcaklık katsayısına sahip VBE gerilimi, pozitif sıcaklık katsayısına sahip VT gerilimi ile kompanze edilmektedir. VT geriliminin sıcaklık katsayısının değerini değiştirmek için ayarlanabilir RV_TRIM direncinden yararlanılmaktadır. Böylelikle sıfır sıcaklık katsayısına sahip bant-aralığı referans devresi elde etmek amaçlanmıştır. 4.2.1.1. Gerilim ve Akım Referanslarının Ayarlanması Band-Aralığı referans devresinde kullanılan ayarlanabilir direncin değeri 4bitlik bir giriş ile kontrol edilmektedir. Devre içerisindeki ayarlanabilir direncin yapısı Şekil 4.11‟de görülmektedir. Şekil 4.11. Ayarlanabilir dirençin şematik görünümü 21 4bitlik veri girişi ile NMOS anahtarlar açıp kapatılarak direnç değeri değiştirilmektedir. 4bitlik girişin en düşük anlamlı biti ayarlanabilir direncin değişimini belirlemektedir. Bu değer bu tasarım için R/4 Ω‟dur. 4bitlik verinin I2C veri transferi ile 0000 değerinden 1111 değerine kadar değiştirilmesiyle Rsbt değerinden Rsbt + 3,75R değerine R/4‟lük adımlarla direnç değeri elde etmek mümkündür. Bant aralığı referans geriliminin ölçümü için 0˚C – 80˚C arasında 20 ˚C‟lık adımlar ile ölçüm yapmak yeterli görülmüştür. Böylece bir çan eğrisine yakın gerilim dağılımı görmek mümkün olacaktır. 16 farklı direnç değeri için elde edilen sonuçlar Tablo 4.1‟de görülmektedir. Tablo 4.1. Bant-aralığı referans devresi ölçüm sonuçları RV-TRIM değerleri RV-TRIM-0 RV-TRIM-1 RV-TRIM-2 RV-TRIM-3 RV-TRIM-4 RV-TRIM-5 RV-TRIM-6 RV-TRIM-7 RV-TRIM-8 RV-TRIM-9 RV-TRIM-10 RV-TRIM-11 RV-TRIM-12 RV-TRIM-13 RV-TRIM-14 RV-TRIM-15 0 1,27806 1,27198 1,26565 1,25861 1,25315 1,24709 1,24057 1,23451 1,22859 1,22256 1,2161 1,21007 1,20358 1,19752 1,19103 1,18694 20 1,27678 1,27037 1,2635 1,2592 1,25224 1,24581 1,24502 1,23854 1,23217 1,22591 1,21894 1,21273 1,20583 1,19961 1,19279 1,18655 22 Sıcaklık 40 1,27978 1,273 1,26573 1,25993 1,25156 1,24474 1,23742 1,23057 1,22381 1,21698 1,20965 1,2028 1,19536 1,18851 1,18113 1,17427 60 1,28327 1,27611 1,2684 1,26118 1,25331 1,24611 1,23832 1,23108 1,22382 1,21658 1,20881 1,20155 1,19364 1,18638 1,17856 1,17125 80 1,28709 1,27957 1,27144 1,26383 1,25548 1,24788 1,23968 1,23204 1,22451 1,21687 1,20866 1,20099 1,19255 1,1849 1,17657 1,16887 Ayarlanabilir direncin değerini kontrol etmeye yarayan 4bitlik veri girişinin 0000 kodu için direnç değeri maksimum, 1111 kodu için ise direnç değeri minimum değerine sahip olmaktadır. Denklem 4.1‟den görüldüğü gibi direnç değerinin azalmasıyla referans geriliminin azalması gerekmektedir. Tablo 4.1‟de elde edilen sonuçlar ile bu denklem arasında tutarlılık sağlanmıştır. Elde edilen gerilim referanslarının maksimum değişimleri Şekil 4.12‟de görülmektedir. Maksimum gerilim değişimi 226ppm ile 111 kodunda elde edilirken minimum gerilim değişimi 39 ppm ile 0101 kodunda elde edilmiştir. 240 210 180 150 120 90 60 30 0 Şekil 4.12. Gerilim referanslarının maksimum değişim değerleri (ppm) Minimum değişimin elde edildiği giriş değeri, onaltılık sayı tabanında 5 değerine denk düşen 0101 kodunda elde edilmiştir. Bu değer için elde edilmiş olan sıcaklık grafiği Şekil 4.13‟de görülmektedir. Sıcaklık – gerilim grafiği beklendiği gibi çan eğrisinin ters çevrilmiş halini yansıtmaktadır. 23 1.2485 1.248 1.2475 1.247 1.2465 1.246 1.2455 1.245 1.2445 0 20 40 60 80 Şekil 4.13. Band-aralığı referans geriliminin sıcaklık ile değişimi Band-aralığı referans gerilimi minimum sıcaklık katsayısına sahip olacak şekilde ayarlandıktan sonra referans akımının değerini ayarlamak üzere Agilent-3458 multimetresi üzerinde gerekli bağlantılar yapılmıştır. Yapılan bağlantıların ardından LC osilatör devresinin test çıkış pinleri akım referansı bilgisini gönderecek şekilde I2C üzerinden ayarlanmıştır. Band-aralığı referans devresi içerisinde 5uA kutuplama akım referansını elde edebilmek için 6bitlik girişler değiştirilebilen RI-TRIM direnci bulunmaktadır. Akım referansını elde edebilmek için bu 6 bit için oluşan 64 olasılığı denemek yerine burada bir SAR algoritması kullanılmıştır. İlk olarak 6 bit için orta değer olan 100000 değeri giriş olarak verilip akım ölçümü gerçekleştirilmiştir. Eğer ölçülen akım, istenilen referans akımı değerinden fazla ise giriş bitinin en anlamlı biti 0 yapılıp bir sonraki anlamlı biti 1 yapılmıştır. Eğer ölçülen akım referans akım değerinden az ise en anlamlı bit 1 olarak bırakılmış ve bir sonraki bit 1 yapılarak işleme devam edilmiştir. Bu şekilde 6 bit tarandıktan sonra referans akıma en yakın değere sahip akımı elde edebilmek mümkündür. Bu işlemi gerçekleştirmek için MATLAB ortamında math-script diliyle basit bir program yazılmıştır. LabVIEW üzerindede math-script diliyle yazılmış programların çalıştırılabilmesinden yararlanılarak SAR algoritması ölçüm sistemine entegre edilmiştir. SAR algoritması yazılırken bit sayısı program için bir giriş olarak belirtilmiş böylece istenilen bit sayısına kadar SAR algoritması yöntemiyle işlem gerçekleştirmek mümkün olmuştur. 24 Band-aralığı referans devresinden üretilen akım teorikte 5uA olacak şekilde belirlenmiştir. Bu yüzden LabVIEW ortamında ölçümleri gerçekleştirmek için yazılacak programda referans akım değeri olarak 5uA seçilmelidir. LabVIEW programının ilk olarak fırını, ölçümlerin yapıldığı sıcaklık aralığının orta noktası olan 40˚C‟ye getirmesi sağlamıştır. Ardından yazılan SAR algoritması ile üretilen giriş bitleri I2C üzerinden entegre devreye gönderilmiştir. Bu işlemden sonra Agilent3458A multimetresinden okunan akım değeri, 5uA olarak ayarlanmış referans akım değeri ile karşılaştırılmış ve çıkış tekrar SAR algoritmasının girişine verilmiştir. Bu şekilde 6 bitlik tarama LabVIEW ortamında gerçekleştirilmiş ve ikilik tabanda 001101, onaltılık tabanda 0D‟ye denk düşen giriş için 5,02uA‟lik akım elde edilmiştir. Bu giriş işareti için 0˚C - 80˚C arasında 20 ˚C lik adımlarla ölçümler gerçekleştirilerek Şekil 4.14‟de görülmekte olan akım referansı değerleri elde edilmiştir. 5.16E-06 5.12E-06 5.08E-06 5.04E-06 5.00E-06 4.96E-06 4.92E-06 4.88E-06 4.84E-06 0 20 40 60 80 Şekil 4.14. Band-aralığı referans akımının sıcaklık ile değişimi Şekil 4.14‟den görüldüğü gibi üretilen akım referansının sıcaklık ile değişimi, referans gerilime göre çok daha fazla ve bir çan eğrisi şeklinde değildir. Bunun sebebi referans akım üretilirken, referans geriliminin bir direnç üzerine düşürülmesidir. Direncin sıcaklık katsayısının yaklaşık olarak 2000ppm değerlerinde olmasından dolayı bu derece bir fark görülebilmektedir. Ayrıca yine direnç değerinin sıcaklığa bağlı olarak değişmesi ile çan eğrisinin bozulması açıklanabilmektedir. 25 4.2.2 Sıcaklık Oranlı Gerilim Referansı Devresinin Ölçümü Lineer kompanzasyonun ikinci kısmı, sıcaklık oranlı referans geriliminin belirlenmesidir. Tasarlanan LC osilatörün osilasyon frekansı negatif sıcaklık katsayısına sahipken, pozitif gerilim katsayısına sahiptir. Yani sıcaklık artışıyla osilasyon frekansı azalırken, varkatör gerilimlerinin arttırılmasıyla osilasyon frekansı artmaktadır. Bu noktadan yola çıkarak varaktör gerilimlerinin sıcaklıkla beraber arttırılması yöntemiyle osilasyon frekansındaki değişimleri kompanze etmek mümkündür. 4.2.2.1 LC Osilatör Kutuplama Gerilimlerinin Belirlenmesi Diferansiyel LC Colpitts Osilatör topolojisinde kullanılan NMOS transistörlerinin frekans hatasını azaltabilmek için sabit geçiş-iletkenliği elde edilecek şekilde kutuplanması gerekmektedir. Bu kutuplamayı sağlamak için kutuplama geriliminde 3bitlik ayarlama seçimi kullanılmıştır. Böylelikle 8 farklı değerde kutuplama gerilimi seviyesi üretmek mümkün olmaktadır. Kutuplama geriliminin üretildiği devre Şekil 4.15‟de görülmektedir. Şekil 4.15. LC osilatör kutuplama gerilimi devresi 26 Devre şematiğinden görüldüğü gibi RTRIM direnci değiştirilerek farklı kutuplama gerilim değerleri elde etmek mümkün olmaktadır. Sıcaklık değişimleri ile birlikte transistörlerin geçiş iletkenliklerinin değişmekte ve osilasyon frekansında değişimler oluşmaktadır. Bu değişimleri minimize etmek için 0˚C, 40˚C ve 80˚C sıcaklıklarında oluşturulan sekiz farklı kutuplama gerilimi değeri için frekans değişimleri incelenerek minimum frekans değişiminin sağlandığı nokta kutuplama noktası olarak seçilmelidir. Bu inceleme sırasında varaktör gerilimleri sabit olarak 600mV değerine kutuplanmıştır. Sıcaklık oranlı gerilimi üreten akım kaynakları devreden çıkarılmış ve ölçümler bu şekilde gerçekleştirilmiştir. Yedi farklı ölçüm sonucunda elde edilen sonuç Şekil 4.16‟da görülmektedir. 2600.00 2550.00 Frekans kayması (ppm) 2500.00 2450.00 2400.00 2350.00 2300.00 2250.00 2200.00 Şekil 4.16. Değişik kutuplama gerilimi değerlerinde elde edilen frekans – scıaklık eğrileri Şekil 4.16‟dan görüldüğü gibi en düşük frekans oynaması 011 kodunda denk düşen BIASLCOTRIM_h3 kodunda 2320 ppm ile sağlanmıştır. 27 4.2.2.2. Varaktör Gerilimi – Frekans Eğrilerinin İncelenmesi Sıcaklık oranlı gerilim referansının üretilmesi için tasarlanmış olan devre Şekil 4.17‟de görülmektedir. Şekil 4.17. Sıcaklık oranlı gerilim referansı üreteci Devredeki işlemsel kuvvetlendiricinin pozitif ucu dışarıdan sabit bir gerilim ile sürülmektedir. Bu gerilim Agilent N6705A güç analizöründen üretilen gerilimdir. Bu referans gerilimin üzerine, ayarlanabilir direnç üzerindeki gerilim eklenerek yada çıkarılarak varaktör gerilimi elde edilmektedir. Ekleme veya çıkarma işlemi IBIASTRIM ve IPTAT-TRIM akımlarının değerlerine göre şekillenmektedir. Devrede VPTC olarak belirtilmiş olan gerilim değerinin eşitliği aşağıdaki denklemde verilmiştir. VPTC Vin _ cont R Ibias I ptat (4.3) Sıcaklığın artması ile birlikte akım değerlerinin artmasından yararlanarak varaktör gerilimleri arttırmak mümkün olmaktadır. Devre topolojisinden görüldüğü gibi akım kaynakları ve direnç ayarlanabilir yapıdadır. IBIAS-TRIM ve IPTAT-TRIM akımları için 6bitlik, direnç içinse 2bitlik bir ayarlama değeri uygun görülmüştür. Ayarlanabilir direnç için 2 bitlik ayarlama yapılmasına rağmen, 3 koşullu anahtarlı yapı kullanılmış ve bitlerden biri anlamsız giriş olarak kabul edilmiştir. Ayarlanabilir akımlar için 64 değişik değer oluşturmak mümkünken direnç değeri için 3 farklı değer yeterli görülmüştür. 28 Sıcaklık oranlı gerilim referansının belilenmesinden önce, optimal sıcaklık noktası olan 40˚C‟daki varaktör gerilimine bağlı olarak frekans değişimi incelenmiş ve buradan varaktör geriliminin sınırları belirlenmiştir. Şekil 4.18‟de varaktör gerilimine bağlı olarak elde edilen frekansların değişimi görülmektedir. 52400000.00 52300000.00 52200000.00 52100000.00 52000000.00 51900000.00 51800000.00 51700000.00 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 Şekil 4.18. 40˚C‟daki Varaktör gerilimi–Frekans grafiği Varaktör geriliminin 0,4V ile 0,8V değerleri arasında frekans değişimlerinin çok daha etkili olduğu görülmektedir. Bunun sebebi NMOS transistörden elde edilen varaktörün belirli bir gerilim seviyesinden önce ve sonra, kapasitif değerinin sabit olmasıdır. Belirli bir aralıktaysa kapasite değerinde büyük bir değişim görülmektedir. Frekans değişimlerini kompanze edebilmek için varaktörün bu gerilimler arasında kutuplanması gerekmektedir. Aynı şekilde 0˚C ve 80˚C değerlerinde varaktör gerilimi ve frekans eğrileri incelendiğinde, kutuplama geriliminin 400mV aşağısına inmemesi ve 850mV‟dan daha yukarı çıkmaması gerektiğine karar verilmiştir. 0˚C ve 80˚C sıcaklıklarında elde edilen eğriler Şekil 4.19‟da görülmektedir. 29 52500000.00 52400000.00 52300000.00 52200000.00 52100000.00 80˚C 52000000.00 0˚C 51900000.00 51800000.00 51700000.00 51600000.00 0 0.4 0.8 1.2 1.6 Şekil 4.19. 0˚C ve 80˚C‟daki Varaktör gerilimi – Frekans grafiği 4.2.2.3 Varaktör Kontrol Geriliminin Belirlenmesi Gerilim aralığına karar verildikten sonra 40˚C da elde edilmek istenen referans gerilim değeri seçilmelidir. Referans gerilim değerinin 400mV ile 850mV değerinin orta noktası olan 625mV civarında olması gerekmektedir. Böylece lineer kompanzasyon sonucunda elde edilen sıcaklık oranlı referans gerilimin istenilen gerilim aralığında kalması sağlanabilecektir. Sıcaklık oranlı gerilim referansı oluşturmak için kullanılan akım kaynakları tekrar devreden çıkarılarak, varaktör gerilimin kontrol gerilimi ile belirlenmesi sağlanmıştır. Bunun ardından LabVIEW ortamında fırını 0˚C, 40˚C ve 80˚C‟ye getiren bir program yazılmıştır. Program ilk olarak fırın sıcaklığını 40˚C‟ye getirmektedir. Bu noktada Agilent N6705A güç analizöründeki gerilim seviyesini 560mV‟dan 640mV değerine kadar 20mV aralıklarla değiştirmekte ve bu varaktör gerilimlerindeki osilasyon frekanslarını ölçerek hafızasına almaktadır. Ardından fırın 80˚C‟ye getirilmekte ve Agilent N6705A güç analizöründeki gerilim seviyesi 5mV‟luk aralıklarla arttırılmaktadır. Program 40˚C ve 560mV‟daki osilasyon frekansına 200ppm yaklaşıklık elde edene kadar gerilim seviyesini arttırmakta ve yeterli yaklaşıklık gerçekleştirildikten sonra 580mV‟daki osilasyon frekansını sağlamak için işlemi sürdürmektedir. Bu şekilde 560mV – 640mV arasında elde edilmiş olan tüm osilasyon frekanslarına belirlenen yaklaşıklık sağlandıktan sonra fırın 0˚C‟ye getirilmektedir. Bu sıcaklıkta da aynı işlemler gerçekleştirilecek şekilde ayarlanmış 30 fakat bu kez gerilim seviyesi osilasyon frekansını yakalayabilmek için aşağıya doğru çekilmiştir. Programın tamamlanmasının ardından elde edilen veriler Tablo 4.2‟de görülmektedir. Tablo 4.2. Varaktör gerilimi – Frekans tablosu Sıcaklık Varaktör Gerilimi Osilasyon Frekansı 0˚C 0,250 51972140,000 40˚C 0,560 51966420,000 80˚C 0,710 51958195,000 0˚C 0,345 51991800,000 40˚C 0,580 51985845,000 80˚C 0,725 51975700,000 0˚C 0,420 52018450,000 40˚C 0,600 52011980,000 80˚C 0,750 52001750,000 0˚C 0,440 52031840,000 40˚C 0,620 52026965,000 80˚C 0,780 52020480,000 0˚C 0,480 52049800,000 40˚C 0,640 52042400,000 80˚C 0,800 52039400,000 Tablodan görüldüğü gibi varaktör kontrol geriliminin 560mV ve 580mV değerine ayarlandığı noktalarda istenilen gerilim aralığından çıkılmıştır. Dolayısıyla bu noktalarda lineer kompanzasyon gerçekleştirilmesi düşünülmemelidir. Diğer noktalardan biri olan 600mV değerinde ise 0˚C - 40˚C ve 40˚C - 80˚C arasında oluşan gerilim farkları aynı değildir, bu yüzden lineer kompanzasyon ile bu işlemi gerçekleştirmek mümkün olmamaktadır. Tablodan görüldüğü gibi 640mV noktasında 0˚C - 40˚C ve 40˚C - 80˚C arasında oluşan gerilim farkları eşittir. Bu değerler için frekans değişimi yaklaşık olarak 140ppm civarındadır. Lineer kompanzasyonu gerçekleştirebilmek için ayarlanabilir akım kaynakların değerleri ve ayarlanabilir direncin değeri 40˚C‟lik artışta, varaktör gerilimini 160mV arttıracak şekilde ayarlanmalıdır. 6bit DAC kullanılarak gerçekleştirilmiş olan akım kaynaklarının biri band-aralığı referans devresinden üretilmekte olan kutuplama akımı, diğeri ise yine band-aralığı referans devresinden üretilmekte olan sıcaklık oranlı akımdır. Bu iki akım değeri 31 sıcaklık artışına göre farklı değerlerde artış göstermektedir. Bundan yararlanarak istenilen gerilim farkını yaratacak şekilde ayarlama yapmak mümkündür. Bu gerilim farkını bulabilmek için LabVIEW ortamında bir program yazılmıştır. Program ilk olarak fırın sıcaklığını 40˚C‟ye getirmekte ve 6bit değişimden oluşacak olan 64 farklı olasılığı denemektedir. Aynı zamanda bu anda ayarlanabilir direnicin alabildiği 3 farklı değeri de deneyerek 192 farklı olasılık için oluşan varaktör geriliminin değerini Agilent 3458 multimetresinden okumaktadır. Ardından fırın 45˚C‟ye getirilerek aynı işlemler tekrarlanmıştır. Elde edilen veriler arasından 40˚C‟lık artışta 160mV artışa denk düşen 5˚C‟lık artışta 20mV artış değeri aranmıştır. Bu değere %99 ihtimalle yaklaşan değerler hafızaya alınmış ve bu değerlere karşılık olarak düşen ayarlama bitleri belirlenmiştir. Programın çalıştırılmasından sonra elde edilen veriler Tablo 4.3‟de görülmektedir. Tablo 4.3. Ayarlanabilir akım ve direnç kodlarına karşılık gelen gerilim artışları Akım Ayarlama kodu Direnç ayarlama kodu Gerilim Farkı 001010 10 0,020159 010011 01 0,019965 100110 00 0,02086 Elde edilen gerilim farkı değerlerinden, istenilen değere en yakın değer olan 0,019965V‟a karşılık gelen ayarlama kodu kullanılması gerektiği sonucu çıkarılmıştır. LabVIEW ortamında I2C veri transferi yolu üzerinden bu elde edilen kodlar gönderilmiş ve gerilim farkı tekrar doğrulanmıştır. 10˚C artışta 0,04086V değerinde bir artış elde edilmiştir. İstenilen gerilim artışı sağlandıktan sonra LabVIEW ortamında 40˚C‟daki varaktör gerilimini 640mV seviyesine getirecek şekilde bir program yazılmıştır. Bütün lineer kompanzasyonu sağlayan veriler ayarlandığı için bu noktadan sonra istenilen gerilim değerini sağlayabilmek için Agilent N6705A güç analizöründeki kontrol gerilimi değiştirilmelidir. Yazılan program ile ilk olarak Fırın 40˚C‟ye getirilmekte ve Tablo 4.4‟de görülmekte olan lineer kompanzasyon verileri I2C veri transfer yoluyla entegre içerisine gönderilmektedir. 32 Ardından program Agilent 3458 multimetresi üzerinden varaktör gerilimi değerini okumakta ve 640mV luk referansla karşılaştırmaktadır. Elde edilen sonuca göre Agilent N6705A tarafından kontrol gerilimi azaltılmakta yada arttırılmaktadır. Bu işlem 640mV‟luk referansın yüzde 95‟ine yaklaşıncaya kadar 5mV‟luk adımlarla gerçekleştirilmiştir. Program sonucunda Agilent N6705A güç analizörü çıkışı 500mV değerine ayarlandığında istenilen gerilim seviyesinin elde edildiği görülmüştür. 4.2.3 Lineer Kompanzasyon Sonuçları Lineer kompanzasyon için gerekli olan LC osilatör kutuplama gerilimi ayarı, sıcaklık oranlı referans gerilimi ayarı yapıldıktan sonra bu verilerle elde edilen frekans değişimini incelemek üzere LabVIEW ortamında bir program yazılmıştır. Program sırasında I2C üzerinden entegreye devreye iletilecek olan veriler Tablo 4.4‟de görülmektedir. Tablo 4.4. Lineer Kompanzasyon verileri LİNEER KOMPANZASYON SONUÇLARI 011 RLC-BIAS-TRIM 01 RTC-TRIM 010011 IPTAT-TRIM 010011 IBIAS-TRIM 0101 RV-TRIM 001101 RI-TRIM 500mV VIN-CONT LabVIEW ortamında yazılan programda ilk olarak bu veriler I2C ile entegre devreye gönderilmiş ardından fırın sırasıyla 0˚C , 40˚C ve 80˚C‟ye getirilerek bu sıcaklıklarda frekans ölçümleri ve varaktör gerilimi ölçümler gerçekleştirilmiştir. Şekil 4.20 ve Şekil 4.21‟de elde edilen frekans ve varaktör gerilimi eğrileri verilmiştir. 33 52040000.000 52035000.000 52030000.000 52025000.000 52020000.000 52015000.000 52010000.000 52005000.000 0 10 20 30 40 50 60 70 80 90 Şekil 4.20. Lineer Kompanzasyon sonucu elde edilen frekans eğrisi 0.900000 0.850000 0.800000 0.750000 0.700000 0.650000 0.600000 0.550000 0.500000 0.450000 0.400000 0 10 20 30 40 50 60 70 80 Şekil 4.21. Lineer Kompanzasyon sonucu elde edilen varaktör gerilimi eğrisi Gerçekleştirilen lineer kompanzasyon sonucunda gerilim seviyesi 80˚C ve 0˚C için 20mV aşağıya kaymıştır ve bu yüzden bu noktalarda frekans kompanzasyonu iyi bir şekilde gerçekleştirilememiştir. IBIAS-TRIM ve IPTAT-TRIM ayarlanabilir akımları için elde edilen diğer kodlar denendiğinde istenilen gerilim seviylerinde kutuplama gerçekleştirilememiştir. Sonuç olarak lineer kompanzasyon için elde edilen sonuç nonlineer kompanzasyon ile giderilebilecek kompanzasyon için bu değerler uygun görülmüştür. 34 noktada olduğundan lineer 4.3 Nonlineer Kompanzasyon Lineer kompanzasyon sonucu 0˚C - 80˚C arasında elde edilen osilasyon frekansı değişimi 128ppm değerine indirilmiştir. 128ppm değeri yaklaşık olarak 52MHz lik bir osilasyon frekansı değeri için 6,656kHz‟lik frekans sapmasına denk düşmektedir. Bu frekans sapmasını giderebilmek için DAC tarafından bir dirence akım basılarak veya akım çekilerek, varaktör gerilimi değiştirilecek ve frekans belirlenen referans frekansa getirilmeye çalışılacaktır. DAC ile nonlineer kompanzasyonun gerçekleşitirildiği yapı Şekil 4.22‟de görülmektedir. Şekil 4.22. Nonlineer kompanzasyon için kullanılan devre yapısı Devrede görülmekte olan VPTC gerilimi lineer kompanzasyon ile üretilmiş olan sıcaklık oranlı gerilim referansıdır. Şekil 4.22‟de görülen yapı ile bu referans gerilimi arttırmak veya azlatmak mümkündür. DACTRIM olarak belirtilen sayısal giriş, akım kaynaklarının akımını ve anahtarın kontrolünü sağlamaktır. 9bitlik girişten oluşan bu işaretin en anlamlı biti anahtarın kontrolünü sağlarken diğer 8bit ile akım kaynaklarının kontrolu sağlanmaktadır. DACTRIM girişinin en anlamlı biti lojik „1‟ konumunda iken Şekil 4.22‟den görüleceği gibi R direnci üzerinden çıkışa akım basılacak ve VOUT gerilimi artacak, lojik „0‟ konumunda ise R direnci üzerinden akım çekilerek VOUT gerilimi azalacaktır. 35 Bu şekilde lineer kompanzasyon sonrasında osilasyon frekansının referans frekanstan düşük çıkması halinde gerilim arttırılacak, yüksek çıkması halinde ise gerilim azaltılarak kompanzasyon yapılacaktır. 4.3.1. Programlanabilir Kuvvetlendiricinin Ayarlanması Lineer kompanzasyon sonucu elde edilen VPTC gerilimi üzerinde DACTRIM işareti ile yapılan değişimler sırasında nominal VPTC gerilimi SAR ADC tarafından örneklenmektedir. Böylece oluşan SAR ADC kodu ile nonlineer kopmanzasyon sonucu belirlenen DAC giriş kodu arasında bir geçiş lojiği tasarlanabilecektir. Fakat lineer kompanzasyon sonucu oluşturulan VPTC gerilim referansı yaklaşık olarak 450mV ile 800mV arasında değişmesinden dolayı SAR ADC tarafından örnekleme gerçekleştirilse de ADC‟nin tüm bitleri bu örnekleme için kullanılmayacaktır. SAR ADC‟nin tüm bitlerinin kullanılabilmesi için giriş geriliminin toprak potansiyeli ile kaynak potansiyeli arasında salınması gerekmektedir. Bu yüzden üretilen VPTC gerilimi programlanabilir kuvvetlendirici ile kuvvetlendirilerek SAR ADC girişine verilecektir. Tasarlanan yapı Şekil 4.23‟de görülmektedir. Şekil 4.23. Programlanabilir kuvvetlendirici yapısı Programlanabilir kuvvetlendirici yapısı ile yaklaşık olarak 350mV civarında olan VPTC salınımını 0 - 3.3V arası salınıma dönüştürülmektir. Bu noktada programlanabilir kuvvetlendiricinin kazancı ve referans geriliminin seviyesi belirlenmelidir. İlk olarak programlanabilir kuvvetlendiricinin kazanç aralığını belirlemek için IBIASTRIM ve IPTAT-TRIM akımları tekrar devreden çıkarılıp VPTC geriliminin Agilent N6705 güç analizöründeki gerilim seviyesi ile belirlenmesi sağlanmıştır. Bu işlemden sonra Programlanabilir kuvvetlendiricinin referans girişine de yine Agilent N6705 güç analizöründen üretilen bir başka gerilim verilmiştir. 36 Bu iki gerilim seviyesi arasındaki fark 50mV değerine ayarlanarak, kuvvetlendirici çıkışını Keithley 2000 multimetresinden okumak için gerekli olan I2C verisi belirlenmiştir. Bu işlemden sonra LabVIEW ortamında 3bitlik sayısal işaretle kontrol edilen RPGA-TRIM direncinin değeri değiştirilerek çıkıştaki gerilim seviyesi okunmuş ve giriş işaretlerinin farkına bölünerek kazanç elde edilmiştir. Tablo 4.5‟de her bir koda karşılık düşen kazanç değerine ilişkin bilgi verilmiştir. Tablo 4.5. Programlanbilir kuvvetlendirici kazanç tablosu RPGA-TRIM 000 001 010 011 100 101 110 111 Kazanç -15,56 -14,44 -13,02 -12,01 -10,78 -9,54 -8,48 -7,22 Programlanabilir kuvvetlendiricinin kazanç aralığı belirlendikten sonra işlemsel kuvvetlendiricinin pozitif girişini süren referans gerilimi değeri belirlenmelidir. Referans geriliminin VPTC geriliminin maksimum ve minimum değerleri arasında olması gerektiği aşikardır. Böylece minimum VPTC değeri için çıkış gerilimi kaynak potansiyeli değerine erişecek, maksimum VPTC değeri içinse toprak potansiyeli değerine erişecektir. Devrenin giriş gerilimi olan VPTC geriliminin minimum değeri yaklaşık olarak 450mV değerindedir. Bu değere karşılık olarak çıkışta SAR ADC‟nin „FF‟ koduna karşılık düşecek 3.3V gerilim elde edilecektir. VPTC geriliminin maksimum değeri içinse SAR ADC çıkış „00‟ kodunda olmalıdır. Bu nedenle devrenin çıkış geriliminin toprak potansiyeline inmesi gerekmektedir. Bu iki koşul altında 4.4‟deki kazanç denklemi çözülerek VOUT VREF AMP K VREF AMP VIN 37 (4.4) referans Geriliminin değeri 723mV olarak bulunmuştur. Bu değere karşılık düşen kazanç ise 9,3 olmuştur. Bu yüzden kazanç değeri 5 nolu ayarlama kodu olan „101‟ olarak seçilmiştir. Bu ayarlama kodu ve referans gerilimi değerleri için 3,3V arasında salınım sağlamak mümkün olmuştur. SAR ADC çıkış kodlarına karşılık düşen gerilimler Şekil 4.24‟de görülmektedir. 300 250 200 150 100 50 0 0 0.5 1 1.5 2 2.5 3 3.5 Şekil 4.24. SAR ADC çıkış kodları 4.3.2. Dijital – Analog Dönüştürücünün Ayarlanması Nonlineer kompanzasyon için kullanılan yapıda VPTC gerilimini istenilen seviyeye getirebilmek için DAC kullanılmaktadır. Referans frekansa göre 9bitten oluşan DAC‟ın ilk olarak en anlamlı bitine karar verilecek ardından 8bit için LabVIEW ortamında önceden yazılmış olan SAR algoritması kullanılarak istenilen referans frekansa en yakın değer elde edilmeye çalışılacaktır. Nonlineer kompanzasyon ilk olarak 20˚C‟lik adımlarla gerçekleştirilecek ve minimum frekans değişimini sağlayacak şekilde DAC girişi değiştirilecektir. Aynı zamanda DAC girişi değiştirilmeden önce VPTC geriliminin değeri SAR ADC tarafından örneklenecektir. Böylece SAR ADC koduna karşılık düşen DAC girişi değeri belirlenecektir. Bu işlemi gerçekleştirmek için LabVIEW ortamında bir program yazılmıştır. Program aşamaları şu şekildedir; ilk olarak programın 38 başlangıcında fırın 40˚C „ye getirilerek lineer kompanzasyon verileri I2C ile devreye gönderilecektir. Bu veriler ile elde edilen referans frekans değeri belirlenecektir. Ardından fırının sıcaklığı 0˚C-80˚C arasında 20˚C adımlarla arttırılacaktır. İstenilen sıcaklık noktalarına ulaşıldıktan sonra program entegrenin aynı sıcaklık seviyesine gelebilmesi için bir süre bekletilecek ve I2C üzerinden SAR ADC‟nin çıkışı okunacaktır. Bu işlem gerçekleştirildikten sonra Agilent 3458A multimetresinden bu SAR ADC koduna karşılık düşen varaktör gerilimi okunacaktır. Ardından Rohde&Schwarz Spektrum Analizörü kullanılarak o sıcaklıktaki frekans değeri okunacak ve referans frekans değerine göre varaktör gerilimi arttırılacak ya da azaltılacaktır. Buna göre DAC girişinin en anlamlı bitine karar verilecektir. Bu veri belirlendikten sonra SAR algoritması kullanılarak DAC girişi değiştirilecek ve her bir değişimden sonra frekans ölçümü gerçekleştirilerek DAC girişinin artmasına ya da azalmasına karar verilecektir. 8bit boyunca bu işlem gerçekleştirilerek referans frekansa yakınsamak için gerekli olan DAC girişi belirlenecektir. Program çalıştırıldıktan sonra referans frekans değeri 52037251Hz olarak belirlenmiştir. Bu referans frekans değerine göre 0˚C, 20˚C, 60˚C ve 80˚C‟de elde edilen nonlineer kompanzasyonsuz frekans değerleri ve nonlineer kompanzasyon sonucu elde edilen frekans değerleri Şekil 4.25‟de görülmektedir. Yapılan frekans kompanzasyonu sonucu referans frekans değerinden maksimum 2,4ppm değişim ölçülmüştür. 52040000.000 52035000.000 52030000.000 52025000.000 52020000.000 52015000.000 52010000.000 52005000.000 0 10 20 30 40 50 60 70 80 Şekil 4.25. Lineer kompanzasyon ve nonlineer kompanzasyon sonucu elde edilen frekans eğrileri 39 4.3.3. NonLineer Kompanzasyon Sonuçları Tüm işlemler gerçekleştirildikten sonra minimum sıcaklık adımı olarak 5˚C seçilerek nonlineer kompanzasyon gerçekleştirilmiştir. LabVIEW ortamında yazılan program yardımıyla istenilen sıcaklıklar aralığında ve istenilen sıcaklık artış adımıyla nonlineer kompanzasyon gerçekleştirilmektedir. Yapılan kompanzasyonun ardından LC osilatörün frekans kararlılığı incelenmiş ve Şekil 4.26‟da görülmekte olan frekans değişmi eğrisi elde edilmiştir. 0˚C - 80˚C arasında maksimum frekans kayması maksimum 1,6 ppm olarak sağlanmıştır. 52019660.000 52019640.000 52019620.000 52019600.000 52019580.000 52019560.000 52019540.000 52019520.000 52019500.000 52019480.000 0 10 20 30 40 50 60 70 80 Şekil 4.26. LC osilatör Frekans Kararlılığı Rohde&Schwarz Spektrum analizöründeki örnek alma sayısını arttırarak ölçümlerde gerçekleşebilecek hata payını azaltmak mümkündür. Böylece daha yüksek frekans kararlılıkları elde etmek mümkün olabilir. LC osilatörün frekans ölçümleri gerçekleştirildikten sonra yapılan lineer kompanzasyon sonucunda faz gürültüsündeki değişim incelenmiştir. Bunun için Rohde&Schwarz Spektrum analizörünün LabVIEW sürüclerinden yararlanılarak faz gürültüsü ölçümü gerçekleştiren bir program yazılmıştır. Program ölçüm işlemini istenilen sayıda gerçekleştirerek istatiksel dağılıma göre bir çıkış üretmektedir. Bu program ile elde edilen faz gürültüsü Şekil 4.27‟de görülmektedir. 40 P HA SE NO ISE S ettings R es idual N ois e Signal Freq: 5 2 .0 2 8 3 9 7 M H z Signal L evel: 0 .1 7 dBm E valuation from 1 kH z S p o t N o i s e [T 1 ] to 1 M H z 1 kH z -7 4 .1 9 dBc /H z Res idual P M 0 .4 3 8 ° 1 0 kH z -9 6 .6 6 dBc /H z Signal Freq Δ: ... Res idual FM 9 1 .7 2 7 H z 1 0 0 kH z -1 2 7 .5 5 dBc /H z Signal L evel Δ: ... RM S Jitter 2 3 .3 8 0 6 ps 1 MHz -1 4 4 .3 9 dBc /H z P H N ois e RF A tten 0 dB T op -6 0 dBc /H z -70 IFOVL A -80 -90 -100 1 CLRW R SMTH 1% -110 2 CLRW R -120 3 VIEW SMTH 1% -130 -140 -150 1 kHz 10 kHz 100 kHz 1 MHz Frequency Offset Running ... Date: 14.MAY.2012 23:35:37 Şekil 4.27. Yapılan kompanzasyonlar sonucu elde edilen faz gürültüsü grafiği Faz gürültüsü grafiğinde yeşil renkle çizdirilmiş olan grafik SAR ADC devrede iken diğer grafik ise SAR ADC devrede değil iken ölçülmüştür. İki durumda da 10kHz‟de yaklaşık olarak 96db faz gürültüsü ölçümü gerçekleştirilmiştir. 5. SONUÇ Bu bitirme çalışması kapsamında ölçüm sistemlerinin kurulumu ve uzaktan ölçüm için test düzenleri kurulumu konularında tecrübe edinilmiştir. Elektronik sistemlerin tasarımı ve serimi kadar doğru bir şekilde ölçümü de önemlidir. Çalışmanın gelişimi süresince birçok konuda değişik tecrübeler edinilmiştir. Öncelikle entegre devreler ile haberleşmeyi sağlayan I2C protokolü ile ilgili bilgi edinilmiş ve içerisinde I2C protokolünu destekleyen bir sistem bulunan her entegre devre ile iletişim kurabilecek bir USB-I2C dönüştürücü tasarlanmıştır. Spektrum analizörü, Güç analizörü, Multimetre, Sinyal Analizörü, Karışık Sinyal Osiloskopu 41 gibi birçok ölçüm aletinin kullanılması konusunda deneyim kazanılmıştır. Bu ölçüm aletlerinin LabVIEW ile uzaktan kontrol edilmesi için GPIB, VISA, MODBUS gibi protokoller hakkında bilgi edinilmiştir. Hemen hemen her endüstriyel sektörde yoğun bir kullanıma sahip olan LabVIEW programı kullanımı konusunda tecrübeler elde edilmiştir. LC Colpitts Osilatör, SAR ADC, DAC, Band-Aralığı referans devresi, Frekans bölücü gibi birçok bloğun yapısı hakkında bilgi sahibi olunmuş ve bu blokların tasarım aşamalarında nelere dikkat edilmesi gerektiği ölçümlerden çıkarılmıştır. Sonuç olarak uzaktan kontrolle referans frekanslı LC osilatörün ölçümü ve kompanzasyonu gerçekleştirilmiş ve XXXXppm frekans kararlılığına sahip bir LC osilatör devresi elde edilmiştir. LabVIEW ortamında farklı programlarla gerçekleştirilen bu işlem, üretimi gerçekleştirilmiş bir LC osilatörün ölçümünü ve kompanzasyonu tamamen otomatik olarak gerçekleştirebilmek için LabVIEW ortamında tek bir program haline getirilmiştir. 42 KAYNAKLAR [1] Hu, C. C., “Modern Semiconductor Devices for Integrated Circuits”, Prentice Hall, 2009. [2] AN10216-01, 2003, I2C Manual, Philips Semiconductors, San Jose, CA [3] Başyurt, P. B. and Uyanık, H. U., 2011. I2C Master IP Core, ITU VLSI LABs. [4] Travis, J. and Kring, J., “LabVIEW For Everyone”, Prentice Hall, 2006. [5] Ates, E. O. And Aksin, D. Y., 2010. “Fully integrated 50MHz frequency reference with 1ppm absolute accuracy within 0-80˚C”, Ph.D. Resaerch in Microelectronics and Electronics (PRIME), Berlin, Germany, September 2010, 1-4. [6] Bai, Y., “The Windows Serial port Programming Handbook”, Auerbach Publications, 2004. [7] Smith T. S., “MATLAB Advanced GUI Development”, Dog Ear Publishing, 2006. [8] 320998A-01, 1996, LabVIEW® Tutorial Manual, National Instruments Corporation, Austin, TX 43 EKLER A Arduino Mega 2560 USB-I2C dönüştürücü #include <Wire.h> char slaveaddress_c[2]; byte slaveaddress; char Datasizesend_c[2]; char Datasizereceive_c[2]; char readwritechoice; char writeData_c[2]; byte writeData[255]; byte readData[255]; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { if(Serial.available()>4) { for (int i=0; i<2; i++){ slaveaddress_c[i]=Serial.read(); } byte slaveaddress = hexstring2int(slaveaddress_c[0],slaveaddress_c[1]); readwritechoice=char(Serial.read()); if(readwritechoice=='w'){ for (int i=0; i<2; i++){ Datasizesend_c[i]=Serial.read(); } int Datasizesend = hexstring2int(Datasizesend_c[0],Datasizesend_c[1]); while(Serial.available()<2*Datasizesend) {} for (int i=0; i<Datasizesend; i++) { for (int j=0; j<2; j++){ writeData_c[j]=Serial.read(); } writeData[i]= hexstring2int(writeData_c[0],writeData_c[1]); } for (int i=0; i<Datasizesend; i++){ Wire.beginTransmission(slaveaddress); Wire.send(i); Wire.send(writeData[i]); Wire.endTransmission(); Serial.flush(); } } else if(readwritechoice=='r') { for (int i=0; i<2; i++){ Datasizereceive_c[i]=Serial.read(); } unsigned int Datasizereceive = hexstring2int(Datasizereceive_c[0],Datasizereceive_c[1]); Wire.beginTransmission(slaveaddress); Wire.send(0); Wire.endTransmission(); Wire.requestFrom(slaveaddress,Datasizereceive); for (int i=0; i<Datasizereceive; i++) { readData[i]=Wire.receive(); if (readData[i]<16){ String readdata = "0" + String (readData[i],HEX); Serial.print(readdata); } else { String readdata = String (readData[i],HEX); Serial.print(readdata); } } } } } int hexstring2int(char HEX_MSB,char HEX_LSB) { int out=0; 44 switch (HEX_LSB){ case '0': out = 0; break; case '1': out = 1; break; case '2': out = 2; break; case '3': out = 3; break; case '4': out = 4; break; case '5': out = 5; break; case '6': out = 6; break; case '7': out = 7; break; case '8': out = 8; break; case '9': out = 9; break; case 'A': out = 10; break; case 'B': out = 11; break; case 'C': out = 12; break; case 'D': out = 13; break; case 'E': out = 14; break; case 'F': out = 15; break; case 'a': out = 10; break; case 'b': out = 11; break; case 'c': out = 12; break; case 'd': out = 13; break; case 'e': out = 14; break; case 'f': out = 15; break; } switch (HEX_MSB){ case '0': out += 0*16; break; case '1': out += 1*16; break; case '2': out += 2*16; break; case '3': out += 3*16; break; case '4': out += 4*16; break; case '5': out += 5*16; break; case '6': out += 6*16; break; case '7': out += 7*16; break; case '8': out += 8*16; break; case '9': out += 9*16; break; case 'A': out += 10*16; break; case 'B': out += 11*16; break; case 'C': out += 12*16; break; case 'D': out += 13*16; break; case 'E': out += 14*16; break; case 'F': out += 15*16; break; case 'a': out += 10*16; break; case 'b': out += 11*16; break; case 'c': out += 12*16; break; case 'd': out += 13*16; break; case 'e': out += 14*16; break; case 'f': out += 15*16; break; } return out; } 45 B I2C okuma ve yazma işleminin Math-script kodu %%okuma%% [status,result] = system(['Serial_Port_classbased COM4 r -s 57 -d 0A ']); disp(strcat(datestr(now),' RECIEVED:',result)); DATA_00(1:8) = fliplr(dec2bin(hex2dec(result(1:2)),8)); DATA_01(1:8) = fliplr(dec2bin(hex2dec(result(3:4)),8)); DATA_02(1:8) = fliplr(dec2bin(hex2dec(result(5:6)),8)); DATA_03(1:8) = fliplr(dec2bin(hex2dec(result(7:8)),8)); DATA_04(1:8) = fliplr(dec2bin(hex2dec(result(9:10)),8)); DATA_05(1:8) = fliplr(dec2bin(hex2dec(result(11:12)),8)); DATA_06(1:8) = fliplr(dec2bin(hex2dec(result(13:14)),8)); DATA_07(1:8) = fliplr(dec2bin(hex2dec(result(15:16)),8)); DATA_08(1:8) = fliplr(dec2bin(hex2dec(result(17:18)),8)); DATA_09(1:8) = fliplr(dec2bin(hex2dec(result(19:20)),8)); reset_SAR = fliplr(strcat(DATA_00(1))); start_SAR = fliplr(strcat(DATA_00(2))); ENB_BONDW = fliplr(strcat(DATA_00(3))); ENB_SPIRAL = fliplr(strcat(DATA_00(4))); ENB_SW = fliplr(strcat(DATA_00(5))); ENB_LCOBIAS = fliplr(strcat(DATA_00(6))); ENB_PGA = fliplr(strcat(DATA_00(7))); ENB_PGAREFGEN = fliplr(strcat(DATA_00(8))); ENB_VPTC = fliplr(strcat(DATA_01(1))); ENB_SAR = fliplr(strcat(DATA_01(2))); ENB_DAC = fliplr(strcat(DATA_01(3))); ENB_50DRV = fliplr(strcat(DATA_01(4))); ENB_SARCLK = fliplr(strcat(DATA_01(5))); SIGNTC = fliplr(strcat(DATA_01(6))); BIASLCO_TRIM = fliplr(strcat(DATA_02(1),DATA_01(8:-1:7))); PGA_TRIM = fliplr(strcat(DATA_02(4:-1:2))); TCLSBTRIM_RES = fliplr(strcat(DATA_02(6:-1:5))); TCTRIM_IPTAT = fliplr(strcat(DATA_03(4:-1:1),DATA_02(8:-1:7))); RV-TRIM = fliplr(strcat(DATA_03(8:-1:5))); VIBTRIM = fliplr(strcat(DATA_04(6:-1:1))); OFFTR = fliplr(strcat(DATA_05(4:-1:1),DATA_04(8:-1:7))); TST_REF = fliplr(strcat(DATA_06(5:-1:1),DATA_05(8:-1:5))); TST_BG = fliplr(strcat(DATA_06(8:-1:6))); DAC_LSBTRIM = fliplr(strcat(DATA_07(3:-1:1))); DAC_IN = fliplr(strcat(DATA_08(4:-1:1),DATA_07(8:-1:4))); SARADC_OUT = fliplr(strcat(DATA_09(8:-1:1))); BIASLCO_TRIM = strcat('h',dec2hex(bin2dec(BIASLCO_TRIM(3:-1:1)))); PGA_TRIM= strcat('h',dec2hex(bin2dec(PGA_TRIM(3:-1:1)))); TCLSBTRIM_RES = strcat('h',dec2hex(bin2dec(TCLSBTRIM_RES(2:-1:1)))); TCTRIM_IPTAT = strcat('h',dec2hex(bin2dec(TCTRIM_IPTAT(6:-1:1)))); RV-TRIM = strcat('h',dec2hex(bin2dec(RV-TRIM (4:-1:1)))); VIBTRIM = strcat('h',dec2hex(bin2dec(VIBTRIM(6:-1:1)))); OFFTR = strcat('h',dec2hex(bin2dec(OFFTR(6:-1:1)))); TST_REF = strcat('h',dec2hex(bin2dec(TST_REF(9:-1:1)))); TST_BG= strcat('h',dec2hex(bin2dec(TST_BG(3:-1:1)))); DAC_LSBTRIM = strcat('h',dec2hex(bin2dec(DAC_LSBTRIM(3:-1:1)))); DAC_IN= strcat('h',dec2hex(bin2dec(DAC_IN(9:-1:1)))); SARADC_OUT= strcat('h',dec2hex(bin2dec(SARADC_OUT(8:-1:1)))); 46 %%yazma%% if start_SAR_c==true start_SAR='1'; else start_SAR='0'; end if reset_SAR_c==true reset_SAR='1'; else reset_SAR='0'; end if ENB_BONDW_c==true ENB_BONDW='1'; else ENB_BONDW='0'; end if ENB_SPIRAL_c==true ENB_SPIRAL='1'; else ENB_SPIRAL='0';end if ENB_SW_c==true ENB_SW='1'; else ENB_SW='0';end if ENB_LCOBIAS_c==true ENB_LCOBIAS='1'; else ENB_LCOBIAS='0';end if ENB_PGAREFGEN_c==true ENB_PGAREFGEN='1'; else ENB_PGAREFGEN='0';end if ENB_PGA_c==true ENB_PGA='1'; else ENB_PGA='0';end if ENB_VPTC_c==true ENB_VPTC='1'; else ENB_VPTC='0';end if ENB_SAR_c==true ENB_SAR='1'; else ENB_SAR='0';end if ENB_DAC_c==true ENB_DAC='1'; else ENB_DAC='0';end if ENB_50DRV_c==true ENB_50DRV='1'; else ENB_50DRV='0';end if ENB_SARCLK_c==true ENB_SARCLK='1'; else ENB_SARCLK='0';end if SIGNTC_c==true SIGNTC='1'; else SIGNTC='0';end BIASLCO_TRIM = ver2bin(BIASLCO_TRIM,3); PGA_TRIM =ver2bin(PGA_TRIM ,3); TCLSBTRIM_RES = ver2bin(TCLSBTRIM_RES,2); TCTRIM_IPTAT = ver2bin(TCTRIM_IPTAT,6); RV-TRIM = ver2bin(RV-TRIM ,4); VIBTRIM =ver2bin(VIBTRIM,6); OFFTR = ver2bin(OFFTR,6); TST_REF = ver2bin(TST_REF,9); TST_BG = ver2bin(TST_BG,3); DAC_LSBTRIM =ver2bin(DAC_LSBTRIM,3) DAC_IN =ver2bin(DAC_IN,9); SARADC_OUT =ver2bin('h0',9); DATA00 = int16(bin2dec(strcat(ENB_PGAREFGEN,ENB_PGA,ENB_LCOBIAS,... ENB_SW,ENB_SPIRAL,ENB_BONDW,start_SAR,reset_SAR))); DATA01 = int16(bin2dec(strcat(BIASLCO_TRIM(2:-1:1),SIGNTC,ENB_SARCLK,... ENB_50DRV,ENB_DAC,ENB_SAR,ENB_VPTC))); DATA02 = int16(bin2dec(strcat(TCTRIM_IPTAT(2:-1:1),TCLSBTRIM_RES(2:-1:1),... PGA_TRIM(3:-1:1),BIASLCO_TRIM(3)))); DATA03 = int16(bin2dec(strcat(RV-TRIM (4:-1:1),TCTRIM_IPTAT(6:-1:3)))); DATA04 = int16(bin2dec(strcat(OFFTR(2:-1:1),VIBTRIM(6:-1:1)))); DATA05 = int16(bin2dec(strcat(TST_REF(4:-1:1),OFFTR(6:-1:3)))); DATA06 = int16(bin2dec(strcat(TST_BG(3:-1:1),TST_REF(9:-1:5)))); DATA07= int16(bin2dec(strcat(DAC_IN(5:-1:1),DAC_LSBTRIM(3:-1:1)))); DATA08 = int16(bin2dec(strcat('0000',DAC_IN(9:-1:6)))); DATA09 = int16(bin2dec(strcat(SARADC_OUT(8:-1:1)))); a= system(['Serial_Port_classbased COM4 w -s 57 -d 0A ',... dec2hex(DATA00,2),' ',... dec2hex(DATA01,2),' ',... dec2hex(DATA02,2),' ',... dec2hex(DATA03,2),' ',... dec2hex(DATA04,2),' ',... dec2hex(DATA05,2),' ',... dec2hex(DATA06,2),' ',... dec2hex(DATA07,2),' ',... dec2hex(DATA08,2),' ',... dec2hex(DATA09,2)]); if a == 0 i2c_cont = true; else i2c_cont = false; end 47 C LabVIEW programları Şekil C.1. N-bitlik ardışıl yaklaşım programı 48 ÖZGEÇMİŞ Atılım Ergül, 28.04.1989 yılında Manisa, Salihli‟de doğmuştur. İlköğrenimini Altınordu ilköğretim Okulu (2000), orta öğrenimini Kudret Demir İlköğretim Okulu (2001) ve Özel Salihli İlköğretim Okulu (2003), lise eğitimini de Salihli Sekine Evren Anadolu Lisesi‟nde (2007) tamamlamıştır. 2007 yılında İstanbul Teknik Üniversitesi Elektronik Mühendisliği Bölümü‟nde lisans eğitimine başlamıştır. Elektronik Mühendisiliği programında son sınıf öğrencisidir. Sayısal ve analog tasarım, ölçme ve karakterizasyon konuları ile ilgilenmektedir. 49