original in en Bob Smith
en to tr Özcan Güngör
Bob'un hobisi, elektronik ve Linux programlamadır.Onun en son projelerini www.linuxappliancedesign.com adresinden ve onun anasayfası www.linuxtoys.org'dan bulabilirsiniz.
Sorun şudur: Başlangıç ve bitiş bitlerini gönderirken verileri
depolamalıyız.
0,1,2 ve 3 bitleri sırasında, verinin 4,5,6 ve 7 bitleri sırasında, verinin bir veri
zamanı kadar beklemesini istiyoruz. Bu yüzden kayıt kaydırıcıdan
Q(A)'yı seçiyoruz. Başlangıç ve bitiş bitleri sırasında, bir 0 ve bir 1
istiyoruz. Bu yüzden bit sayıcıdan Q(0)'ı seçiyoruz.
Şemanın resmi EAGLE (Cadsoft) adı verilen çok hoş bir paket ile yapılmıştır. Yukarıdaki devrenin şema dosyası 1bitla.sch.gz adı altında bulunmaktadır.
Devreyi 115.2 kHz'de çalıştırabilmek için 4024'ın Q(2) ve Q(5) çıkışları yerine Q(1) ve Q(4) çıkışlarını kullanın. Diğer hızları, kristalin farklı değerlerini kullanarak veya kristali bir RC osilatörü ile değiştirerek elde edebilirsiniz.
Kristal osilatörlerin RC osilatörlerden aynı frekansta daha az güç harcadığını hatırlatayım. Güç tasarrufu için, 4049'un kullanılmayan girişlerini topraklayın.
Daha iyi bir yol, TL082 içindeki ikinci op-ampı kullanmaktır. Opamp girişlerinden birine bir gerilim bölücü direnç bağlayıp diğerine veri girişini bağlayabiliriz. Bu eğik gerilimini daha kesin ayarlamamızı sağlar ve test edilen cihaza çok yüksek empedans sunar.
RTS, devrenin geri kalan kısmı için gerilim(Vcc) sağlar. Prototip devrede bu gerilim yaklaşık 7 Volt civarındaydı. Sizin Vcc geriliminiz bilgisayarınızın RS-232 arayüzüne bağlı olarak değişebilir. Veri izleme devresini süren yazılım hem DTR'yi hem de RTS'yi açmalıdır(yüksek yapmalıdır).
Yapım yaklaşımlarından birini gösteren resimler görüyorsunuz.
|
||
---|---|---|
-r | -c | -t |
03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 ff 03 e3 |
0, 0 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 0, 6 1, 5 0, 3 1, 10 |
0, 0.000000 1, 0.000065 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 0, 0.000130 1, 0.000109 0, 0.000065 1, 0.000217 |
1bitla.c programı ile seri porttan veri yakalayabilirsiniz. Çıktıyı üç farklı biçimde erkana yazdırabilirsiniz. İlk biçim ham veri biçimidir: Her satırda bir byte ve iki karakterli onaltılık karşılık. Verilerin önce terslendiğine ve MSB(en önemli bit)'nin önce yazıldığına dikkat edin. Ham çıktı -r komut satırı seçeneği ile alınır. İkinci biçimde, ekrana bir değer(0 veya 1) yazılır ve bu değerin kaç defa ardarda tekrarlandığını yazar. Bu biçimi -c parametresiyle alabilirsiniz. Üçüncü biçimde ise ekrana yine bir değer yazılır ve değerin yanına bu değerin kaç saniye aynı kaldığı yazılır. 46080 kHz'deki çözünürlük 21.7 mikrosaniyedir. Bu biçimi -t seçeneği ile alabilrisiniz.
Programı
1bitla [seçenek] seri_port komutu ile çalıştırabilirsiniz.
Seçenek -r, -c veya -t olabilir.Varsayılan -c'dir.
Programın tasarımı oldukça basittir. Komut satırını işleriz, seri bağlantı noktasını açarız ve sonsuz bir döngü ile byte'ları okuruz ve ekrana yazdırırız.
Örnekleri sadece ekrana yazdırmak ve ya bir dosyaya daha sonra işlemek
için yönlendirmek sizin için yeterli olabilir. Ya da örnekleri işleyen bir
durum makinası ile veriler üzerinde "mantıksal değerlendirilmesi" yapmak isteyebilirsiniz.
Örnek durum makinası, bir kızılötesi uzaktan kontrolünden gönderilen
kod çözme komutlarını içerebilir ya da radyo kontrollü darbeleri
module edilmiş çıktı ile çözebilir.