ADF4351 PLL+VCO Entegresi üzerine Çalışmalar
Son ekleme: 30 Haziran 2013, Pulse ve ASK Modülasyonlu İşaret Üretmek
ADF4351 Analog Devices firmasının 35MHz-4.4GHz arasında frekans sentezleyebilen bir entegresi. Bu entegreyi çok kullanışlı buldum, çeşitli denemeler yaptıkça bu başlık altında yayınlayacağım, güncellene güncellene yazının kıvama geleceğine inanıyorum. Şu haliyle anlam bütünlüğü sağlanamamış olabilir, hiç yoktan iyidir diyerek yazdım.
Öncelikle şuradan başlamak istiyorum, entegrenin geliştirme kartı (evaluation board) nın arayüz yazılımı açık kaynaklı ve C# ile yazılmış. Bu kodu alıp kendi devreme uyarladım:
Kendi devremde PIC16F1827 var dış dünya ile 0/5V UART ile haberleşebiliyor ve ADF4351 entegresini data, clock ve latch enable ve chip enable pinlerinden kontrol ediyor.
ADF4351 de 6 adet 32 bitlik register bulunmaktadır, gönderilen 32 bitin düşük anlamlı 3 biti hangi registere yazılacağını belirtirken kalan 29 bit ayarlarla ilgili bitler, datasheet e bakılabilir. Herhangi bir register a yazmak istediğimde seri olarak PIC e 2+1+4 byte gönderiyorum, öndeki 2 byte öncü veri(36,36) seçtim, 1 byte hedef adres(çoklu uygulamalar için) kalan 4 byte register içeriği. Tabi bu gönderme işlerini güncellemiş olduğum C# programı aracılığıyla yapıyorum. Programın neleri gönderdiğini koda bakarak anlayabilirsiniz ancak emin olmak isterseniz sanal comport çifti(A-B) oluşturup C# tan comA ya gönderip Docklight tan comB yi izleyebilirsiniz. PIC16F1827 nin kodu CCS C ile yazıldı, yazının sonunda verildi.
Arayüz programını kurcalayarak epey bir deneme imkanımız oluyor, mesela “phase resync” özelliğini denedim, hala netleştiremediğim konular var ancak şöyle ki fractional modda çıkış fazını sabitlemek mümkün, PLL için “feedback” seçeneğini “fundamental” değil “divided” yapıp “clk div mode” u da “resync enable” yaparak(R3,DB16-DB15:10) phase resync özelliğini aktifleştirebiliyoruz. Böylece öğreneğin 145.625 MHz de işaret üretirken frekansı 433.900 MHz e ayarlayıp 145.625 e geri geldiğinizde aynı fazdan devam edebiliyorsunuz.
Phase adjust özelliği var, yine fractional modda aktif olan bir özellik, ürettiğiniz iki sinüzoidal arasındaki faz farkını ayarlama imkanı veren bir özellik, gerçekten önemli ve güzel bir özellik… yine burada da netleştiremediğim bazı şeyler var ama arayüzü kullanarak faz ayarı yapılabiliyor, phase adjust ON deyip kurcalayarak aşağıdaki videoyu çekebildim:
Albüm nevinden birkaç foto:
C Dosyaları ve Düzenlenmiş C# Programı: adf4351_C_kod ve ADF435x_ modified_addressed_C
Pulse ve ASK Modülasyonlu İşaret Üretmek, 30 Haziran 2013
ADF4351 in RF çıkışı yazılım ve donanım kontrollü olarak “mute” yapılabiliyor. Register4 ün D3 ü ile veya entegrenin 26 nolu pini PDBrf ile RF çıkışı kapatmak mümkün, tabii ki donanım kontrollü olanı daha hızlı olacaktır. Elimdeki devrede PIC den kullanmadığım bir pini entegrenin bu pinine bağladım ve while(1) içerisine sadece RFON;RFOFF; yazdım, aldığım çıkış aşağıdaki gibi oldu:
Mikrodenetleyicim yaklaşık 4us pulse süresiyle yavaş kalmış olabilir, CCS C fastio ile biraz daha hızlanabilirdi ama denemedim(ek: fastio+32mhz oscdenedim 150ns ye düştü), burada mute fonksiyonunun en azından 1/4us=250Khz e(deneme sonrası:1/150ns=6.6 MHz) kadar çalışabileceğini gördük. Bunu biraz daha ileriye götürüp parametreleri verilen pulse modulasyonlu işaret üretme haline getirmek gerekiyor…
Çıkış ve iniş zamanlarına yakından bakıyoruz:
Bu özelliği kullanarak ASK modülasyonu yapmak da mümkün, elimde eski yazılarda da bahsettiğim basit ASK modüller var. TX modüle 9600bps işaret uygulayıp Anten çıkışına baktığımızda örnek bir ASK işareti görebiliriz:
Sonra ADF4351 i 433.9 MHz e ayarladım, PIC in UART ı 600 bauda ayarlardım TX pinini entegrenin PDBrf pinine bağladım(jumper), C kodda puts(“Selamlar”); yazdım, elimdeki basit ASK alıcıyı FT232Rli dönüştürücüye bağladım, baudu 600 e ayarladım. ADF4351 in RF çıkış aşağıdaki gibi oldu.
Alıcı tarafta sonuç beklendiği gibi:
Faydalı Kaynaklar:
http://www.analog.com/static/imported-files/user_guides/UG-435.pdf
Ellerinize sağlık Fatih Hocam.
Gerçekten çok faydalı bir yazı olmuş. Devamını merakla bekliyoruz.
Selamlar…