Frekansmetre – II
Yazarımız Bekir Sütçü, geçtiğimiz ay ilk bölümünü yayınlamış olduğumuz PIC 16F877 ile yapılmış ve 550 Mhz’e kadar ölçüm yapabilen frekansmetre yazısının ikinci bölümüyle karşınızda. Proje hakkında gelen sorulara yanıt niteliğindeki bu yazıda ayrıca programın kaynak (“source”) kodlarını da bulacaksınız.
Merhabalar, geçen sayıda devresini ve ölçüm sonuçlarını verdiğimiz frekansmetremizin bu sayıda PicBasic-Pro ile yazılmış açık kodlarını ve çalışma mantığını vereceğiz. Bilindiği üzere frekansmetreler zaman geçikmeli olarak çalışırlar. Yani ölçülen sinyalin en az birtam devrini(saykıl) tamamlamasını beklerler. Bu esnada geçen zaman ölçülür ve
f= C/T formülüne göre frekans hesap edilir. Burada ölçme teknikleri işin içine girer ve hata payları dikkate alınır. C yani ölçülen dalga sayısı ne kadar çoksa ve bu esnada T (zaman) ölçümünü yapan cihaz (devremizde 16F877’nin osilatörü yani 4MHz ‘lik kristal) ne kadar hassassa sonuç gerçeğe o kadar yakın olur.
Biz programda 3 ayrı zaman gecikmesi kullandık. 1 ms, 10 mS ve 1 Saniye. Burada amaç frekans hesaplamasında bölme işlemine hiç girmemek ve küsürat kullanmamak. PicBasic-Pro’da zaman geçikmelerini ‘pause’ yada ‘pauseus’ komutlarıyla yapabiliyoruz. Örneğin ‘pauseus 9993’ bize tam olarak 10 milisaniye gecikme sağlıyor. Tabii 7 uS ‘yi program atlamaları
için harcıyoruz. Geçen sayıda verdiğimiz ölçüm tablosundan görüleceği üzere 167MHz gibi yüksek frekanslarda cihazımızı istenen frekansa kalibre etmek program gecikmeleriyle mümkün olmamaktadır. 167.825 MHz lik sinyal cihazımızda 167.890 olarak ölçülüyor. İnce bir ayar için 1 mS ‘lik gecikme rutinindeki (bkz. frekans.bas) pauseus 997 değerini 996 ‘ya çekersek bu durumda pic frekansı 167.730 MHz olarak okumaktadır. Yani programda kalibre işlemi olmamaktadır.
Pic işlemcisiyle uğraşanlar bilirler ki 4MHz ile çalışan devrenin bir işlemi 1uS sürmektedir. Daha ince ayar için yani daha hassas geçikme için yüksek hızlara çıkmak gerekmektedir. Örneğin 20 MHz’lik bir kristal ile 200 nano saniye mertebesinde gecikme sağlanabilir ve cihaz daha hassas ölçüm için kalibre edilmiş olur.
Bu tip devrelerde eğer elinizde profesyonel test-kalibrasyon cihazları yoksa aynı testleri MPLAB programının (www.microchip.com adresinden indirilebilir) simulasyon modunda da yapabilirsiniz. Kristalinizin sıfır hataya sahip olduğunu kabul edersek programda ne kadar zaman gecikmesi sağladığınızı tam olarak MPLAB simulasyon modunda verecektir. Aynı şekilde program hatalarını da tespit etmek mümkün olacaktır.
Ekte açık kodlarını verdiğimiz program aynı zamanda PIC16F877 ile LCD ‘ye nasıl hükmedebileceğimizi ve istediğimiz anda nasıl assembler moduna geçebileceğimizi de göstermektedir. Uğraşacaklara kolay gelsin…