1. GİRİŞ Bu tezin gerçeklenmesindeki amaç, 0˚C

advertisement
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
Download