25 Eylül 2022

ESKİ TELSİZLER İÇİN ARDUİNO İLE CTCSS TON KARTI

CTCSS TONE BOARD WITH ARDUINO FOR OLD TRANSCEIVERS


Ton kartı, KDK SR-144'e yerleşmek üzereyken. Dikkat ederseniz 
elektrolitik sığaların hepsi siyah renk. Bu fotoğraf
sığalar değiştikten sonra çekildi.


Bitpazarından almış olduğum KDK FM-144 telsizin CTCSS ton işlevi olmadığı için o cihazla hiçbir röleyi kullanamadığımı ilgili yazımda anlatmıştım. Telsizi çalışır hale getirdikten kısa süre sonra CTCSS ton kartı konusunu da halletmeye karar verdim. Yapımı kolay bir ton kartı aramaya başladım. Cihazı evimden çıkarmak, araca monte etmek, başka bir mekanda kullanmak gibi bir derdim yoktu. "Elektronik tezgahının rafında kalır, bir projeyle uğraşırken  belki bir arkadaşla selamlaşırım" diye düşünüyordum. Kullanacağım 3 röle de aynı CTCSS frekansını kullanıyordu (103.5 Hz). Salt bu frekansta ton üreten bir kartın yeteceğine karar verdim.

Önce 555 tümleşik devresiyle yapan var mıdır diye baktım, sonra aklıma Arduino geldi. "Altı üstü düşük frekanslı bir sinyal, hem Arduino da kare dalga üretiyor" diyerek Arduino ile yapılmış CTCSS örnekleri buldum. Olabilecek en sade devre ON7GF'nin tek frekansta ton üreten devresiydi, onu yaptım. Aşağıda biraz ayrıntı vereceğim ama isterseniz önce CTCSS nedir biraz ondan söz edelim. Teknik olarak ilginç bir konuymuş, doğrusu ben biraz hafife almışım. 

CTCSS, İngilizce "Continuous Tone-Coded Squelch System" teriminin kısaltması. Sürekli Ton Kodlamalı Susturma Sistemi olarak dilimize çevirsek olur mu, ne dersiniz? Çok önemli değil, nasıl olsa İngilizce kısaltmasını kullamnaya devam edeceğiz. Neyse, CTCSS radyo haberleşmesinde duyulmak istenmeyen kullanıcılardan bizi kurtarmak için geliştirilmiş bir "bant içi" (in-band) işaret gönderme sistemi. Bant içi denirlen kastedilen, bir kontrol işaretinin, o anda haberleşme yapılan kanalda gönderiliyor olması. Zaten bu nedenle kullanıcılar işaretin farkına varabiliyorlar. Camilerdeki ses sistemlerini uzaktan açıp kapamak için kullandıkları DTMF tonlarını duymamız gibi.

Bu teknolojiyi ilk olarak Motorola firması "Private Line (PL)" (özel hat) adıyla pazarlamış, hem de 1950'lerde. Aslında yanıltıcı bir isim çünkü bu bir bir şifreleme vb. sistemi değil ve hiçbir şekilde haberleşme gizliliği falan sağlamıyor (böyle olduğunu sanan amatörlere rastlamışlığım var). Şu güzel yazıda belirtilmiş olduğu gibi, Aslında sadece "seçici bir kulak tıkacı" (!) 

CTCSS tonları 67 ile 257 Hz arasında, toplam WW tane. "Sub-audible", Türkçe'siyle insanın duyma eşiğinin altında olarak nitelendirilse de aslında duyulabilir tonlar. Fakat normal bir ses seviyesinde dinletilirse zorlukla duyulabilecek alçak frekanslarda... Bu tonlar göndermede vericideki bir ton üreteci ile üretiliyor. İşarete çok düşük bir seviyede ekleniyor ki (encoding) insan kulağı mümkün olduğu kadar duymasın.  Karşı taraftaki alıcıda ise çok dar bantlı bir bant-geçiren filtre, gelen radyo sinyalindeki CTCSS tonunu ayıklıyor, doğru akıma dönüştürüp telsizin sesini açan devreleri tetiklemek üzere iletiyor (decoding). Eğer ayarlanan ton, gelen sinyalde yok ise alıcımız squelch'ini açmıyor, böylece istemediğimiz istasyonları (en azından bir bölümünü) ve başka girişimleri (enterferans) duymak zorunda kalmıyoruz. 

Özellikle rölelerde kullanılacak CTCSS tonlarını dikkatle seçmek gerekiyor. Kulakla duyulmasın diye mümkün olan en düşük frekansı seçebilirsiniz ama bu durumda siz mandala bastıktan sonra rölenin tetiklenmesi daha uzun sürüyor (periyod = 1/frekans). Röle önce kendi frekansındaki taşıyıcıyı duyuyor, sonra tonu çözüyor, ancak ondan sonra göndermeye geçiyor. Buna bir çözüm alma ve gönderme arasındaki bekleme süresini arttırmak, böylece mandala bastıktan hemen sonra söyleyeceğimiz hecelerin kesilmesini önlemek. Ama daha zarif bir çözüm biraz daha yüksek frekanslarda bir ton seçmek olabilir (100 Hz - 150 Hz arası) Belki kulakla duyulması daha kolay olur ama en azından röle çabuk tetiklenir. Bir örnek olarak yazayım, ben burada röleden gelen 103.5 Hz'i sessiz bir ortamdaysam ve cihazın sesi yüksek ise duyabiliyorum ama biraz dikkatle dinlemek gerekiyor.

Başka bir sorun da aynı frekansta iki farklı fakat ardışık ton kullanmak. Örneğin aynı simpleks frekansı kullanan iki istasyon birbirine çok yakın (ton listesinde arka arkaya) olan 97.4 Hz ve 100 Hz. tonlarını kullanırlarsa, birbirlerini tetikleme şansları yüksek. CTCSS dekod devrelerindeki filtreler bu kadar yakın iki tonu ayırabiliecek kadar dar bantlı olamıyor çünkü. Bunlar gibi birçok ilginç ayrıntıyı ve ton seçimiyle ilgili çok önemli pratik noktaları öğrenmek isterseniz şu sayfaya mutlaka bakmanızı öneririm gerçekten keyifle okunacak teknik bir yazı.

Şimdi ON7GF'nin ton üretecine geri dönelim. Şemada gördüğünüz gibi zaten bir Arduino modülü ve çıkış filtresinden ibaret. İstediğimiz tonu Arduino sayesinde doğrudan sayısal sentezleme (direct digital synthesis - DDS) ile elde ediyoruz. Bildiğiniz gibi Arduino modülümüzün darbe genişlik modülasyonu (pulse width modulation - PWM) özellikli çıkışları var. Bu çıkışlar, frekans aynı kalmak koşuluyla çalışma döngüsünü değiştirerek (duty cycle) kare dalga işaret üretiyor. Bu işaret, alçak geçiren bir filtreden geçerek harmoniklerden arındırılıyor ve temel frekansta "temiz" bir sinüse dönüştürülüyor. 

Filtrenin şeması (kaynak: ON7GF'nin web sayfası)

Elimdeki Arduino Nano'ya ON7GF'nin yazılımını yükleyip 103.5 Hz tonu elde etmek gayet kolay oldu. Programdaki şu satırda, gereksiniminiz olan CTCSS tonunun numarasına bakıp şu satırda "xx" olan yere yazmayı unutmayın yeter:

int ctcsstone=xx;

İkinci adım olarak Nano'yu ve alça geçiren filtreyi bir deneme tahtası üzerinde kurdum. Sıkıntılar da orada başladı. Arduino'nun çıkışına bakıyorum, doğru bir biçimde 103.5 Hz sinyali geliyor, hem seviyesi de yüksek, o kadar ki, osiloskopa bile gerek olmuyor, ölçü aletinin frekans ölçeriyle görebiliyorum. Ama işareti filtre katlarında takip etmeye kalktığımda görüyorum ki ciddi bir bozulmaya uğruyor... Sığaların değerlerini değiştirmek, filtre kutuplarının sayısını azaltmak, kuplaj sığalarıyla oynamak da kar etmiyor... 

Baktım böyle gitmeyecek, eşimden izin aldım, "canavar" adını verdiğim dijital osiloskopu salon masasına kurdum (dinozor demek daha doğru olabilir,  çalışma masama sığmayacağı için bir dolaba kaldırmıştım). Bu kadar basit bir devrede neyin yanlış gidebileceğini anlamakta zorluk çekiyordum. Aşağıdaki fotoğrafa bakarsanız daha iyi anlayacaksınız. 


İlk başta filtreden çıkan ve bozulmaya uğrayan işaret.


Bu şekilde bir-iki akşamımı harcadıktan sonra, filtre hesabını bir daha yapmaya karar verdim. Açıkça da yazayım, tembel olduğum için Internet'teki hazır hesaplayıcılardan birini kullandım. Sorunun ne olduğu hemen anlaşıldı! ON7GF'nin verdiği değerlerde hata vardı. 100 nF yerine 1 µF yazdığı için kesim frekansı 33 Hz'e inmişti. Bu parçaları 100nF'lıklarla değiştirince bir anda ekranda "pırıl pırıl" bir işaret gördüm. 80mv olan genlik 1,4V'a yaklaşmıştı. Ardından, kullanacağım CTCSS tonu 103.5 Hz olduğu için kesim frekansını daha da aşağıya çekmeye karar verdim. Elimde 220 nF'lık sığalar vardı, bunlarla elde ettiğim 153 Hz uygundu, o şekilde bıraktım. 


Filtre düzletildikten sonra işaret, gördüğünüz gibi hala tam
bir sinüs değil ama iş görüyor


FFT ekranında 103.5 Hz ve 310.5


Yukarıdaki iki fotoğraf filtreyi yeniden dizdikten sonra çekildi. Birinci fotoğrafın üst yarısında ve ikincide görebileceğiniz gibi 103.5 Hz'ın yanı sıra, 310.5 Hz de (3. harmoniği) hala oldukça kuvvetli olarak çıkışta görünüyor. Zararı var mı? Pratikte ben bir fark görmedim (pardon, duymadım) zaten asıl frekanstan 26 dB aşağıda. Ama yine de kutup sayısını bir tane arttırdım, C4'ü de 1 nF ile değiştirdim.
Son hali aşağıdaki gibi oldu:


Alçak geçiren filtrenin düzeltilmiş halinin şeması

Sonraki adım bu haliyle devrenin çıkışını cihazın gerilim denetimli osilatörüne (voltage controlled oscillator - VCO) karıştırıcının PLL girişine bağladım. Bu haliyle hem kendi el telsizimden kendimi dinleyerek, hem de başka amatörlerle görüşerek bir sorun olup olmadığını anlamaya çalıstım. Sonunda doğru çalıştığına karar vererek kalıcı montaja geçmeye karar verdim.

Deneme tahtası üzerinde filtre,
cihazla ilk bağlantı sırasında


Alçak geçiren filtreyi Nano ile aynı boyutlarda kestiğim bir delikli kart üzerinde yaptım. Nano da bu karta lehimli. Modül mümkün olduğu kadar RF'ten etkilenmesin diye DC besleme girişine bir VK200 ferit taktım. Devreyi telsizin gösterge panelinin arkasında bulduğum yere, elektriksel olarak bir temas olmasın diye kapton bantla sardıktan sonra yerleştirdim. Çok ince eşeksenli RF kablosuyla tonu VCO girişine götürdüm. Göndermeye basmamla CTCSS tonunun gelmesi arasında bir gecikme olmaması için, ton devresinin yalnızca gönderme anında çalışmasını istemedim. Bu nedenle DC besleme için alma-verme rölesiyle değil doğrudan cihazın besleme girişine başka bağlantı yaptım. 


Nano ve DC besleme girişindeki ferit nüve


Diğer yüz



Bu ton devresi 3 aydır KDK FM-144 telsizimin üzerinde çalışıyor. 103.5 Hz ton ile açılan bütün röleleri kullanabiliyorum. Haberleşme yaptığım kişilerden de herhangi bir olumsuz bildirim almadım. Ton kartı bulunmayan ama kullanmak istediğiniz klasik bir vericiniz varsa, öneririm. Bu arada "tek bir CTCSS tonu neye yarar?" diyorsanız şunu da belirteyim, ON7GF'nin sayfasında bu devrenin birden fazla ton üretebilenini de göreceksiniz. İki düğme dışında da fark yok. Düğmelere bastıkça CTCSS tonları listesinde ileri-geri giderek seçim yapabiliyorsunuz. Söylemiş olduğum gibi, benim ihtiyacım yok.

Son olarak bir teknik not: Ben sonuçta tasarımında böyle bir işlev bulunmayan bir vericiye CTCSS devresi eklemiş oldum, pratikte çalıştığını da görüyorum ancak teknik olarak gerçek bir deneme ve ayar sürecinden geçmiş değil. Mesela Wikipedia'da konuyla ilgili madde diyor ki, "iki yönlü telsiz sistemlerinde CTCSS üreteclerinin seviyesi sistemin sapmasının % 15'i kadar olarak ayarlanır." Ne yazık ki ben daha telsizin kendisini bile bir sapma-ölçerle ayarlayamadım... Bir fırsatını bulursam, ayar işlemlerinin de sonuçlarını bu yazıya ekleyeceğim.