PT2262 encoder ve pic haberleşmesi..

Başlatan sezgin05, 21 Mart 2006, 09:38:11

sezgin05

Arkadaşlar UDEA dan numune olarak 3 tane verici ve 1 tane ARX34 alıcı istedim.Bu vericilerin içerisinde PT2262 adlı encoder kullanılmış.Tabii adreslenmemiş.Bunları istediğim gibi adresleyeceğim.Bu vericilerin frekansları aynı ayarlanacak ama kodlar farklı olacak.ARX34 modülü vericilerden gelen kodlu sinyalleri alarak demodüle edilmiş çıkış verecek.Buraya kadar tamam .Ben bu bilgiyi nasıl alıpda pice okutabilirim.SERIN-HSERIN yada USART mı kullanmalıyım.Daha önceden benzer uygulama yapan arkadaşlara şimdiden teşekkürler...

Fixxer

Aslına bakarsan bu konuda benimde bilgiye ihtiyacım var yardımcı olabilecekleri davet ediyoruss.bende pt'ler ile arx atx modülleri aldım arkadaşımızın dediği gibi seri iletişim mantığıyla sorunlarımızı çözebilirmiyiz...
...............................

mzeybek

http://picproje.org/index.php/topic,5521

yukarıdaki topicde biraz tartışılmıştı bu konu.
bir de yine forumda oğuzhan kızılbey in bitirme tezi var. o pdf dosyasında da kodlar mevcut. bulamazsan mail ile gönderebilirim.

ben de udea modülleri ile çalışma yapıyorum ama UTR C12 serisini kullanıyorum. bu arada sample olayını nasıl hallettin? bu olaya yaklaşımları nasıl?
UcAnTuRk

sezgin05

@mzeybek
Sample derken ücretsiz örnek demek istememiştim.Yani şimdilik birkaç tane aldım para karşılığı tabii.Benim amacım PT2262 li olan bu vericilerden 10 tane kullanıp bunu tek alıcıya okutup pic ile hangisi olduğunu ayrıştırmak ama henüz bir gelişme kaydedemedim :?

sezgin05

Anlaşılan 2262 nin hangi adresde ve hangi datada ne ürettiğini bilen yok.O halde şöyle bir sorum olacak.2262 nin data girişleri (6 bit) bunlara aynı anda birkaç tanesine birden bassam karşılığınada 2272 koysam aynı datayı ( 6 bit) alırmıyım?Bu mümkün olursa dataları Binarry türünden gönderip işleyebilirim...

ete

Bu konu ile ilgili sorun çözüldümü?. Çözüldü ise nasıl?.
Çözülmedi ise açıklananlardan anladığım kadarı ile bazı yorumlar yapmak istiyorum.

PT2262 nin data sheetini incelediğinizde göreceğiniz gibi 12 adet 3 konumlu giriş var. Bunlar low - high ve float (boşta) olabiliyorlar.
6 adet data ve 6 adet adres bilgisinden oluşan bu girişler istendiği şekilde bağlanarak (hig-low ve float) şifreniz oluşturulmaktadır. TE bacağının Low'a çekilmesi ile birlikte oluşturulan bu şifre DOUT pininden dışarı verilmekte buda verici vasıtası ile RF olarak yayınlanmaktadır.
Çıkan sinyal incelendiğinde her bir data paketinin arkasına 1 adet senkron biti verilmektedir. Şifre bilgisinin pic  ile yakalanıp okunmasında anahtar görevi senkron bitindedir.
Gönderilen bilgiye baktığımızda ise ;
- Sıfır  (bit 0  bilgisi: 4 clock uzunluğunda bir HIGH ve peşinden 12 Clock Uzunluğunda LOW ve bu sinyalin bir kere daha tekararından oluşmakta olup toplam 32 clock uzunluğundadır.
- Bir (Bit 1 ) bilgisi : 12 Clock uzunluğunda HIGH ve 4 clock usunluğunda LOW sinyali ve bunu sinyalin bir kere daha tekarlanmasından oluşan 32 clcok uzunluğunda bir sinyaldir.
- Float (Bit f) Bilgisi: 4 clock uzunluğunda HIGH, 12 Clock Uzunluğunda LOW, 12 Clock Uzunluğunda HIGH ve 4 clock uzunluğunda LOW sinyalinden oluşan toplam 32 clcok uzunluğunda bir sinyaldir.
Bu bilgileri pic üzerinden okur iken her bir Adres veya data bilgisi için PIC de 2 bit kullanmak gerekecektir. Yani;
%11 = PT2262 de Bit 1
%00 = PT2262 de Bit 0
%01 = PT2262 de Bit float'a karşılık gelecektir.
Bu durumda 12 adet adres ve data bilgisini okumak için PIC de 3 adet 8 bitlik Byte değişkeni kullanmak gerekecektir.

Senkron bitine baktığımızda ise 4 clock uzunluğunda HIGH ve 124 Clock uzunluğunda LOW sinyalinden oluşan toplam 128 Clock uzunluğunda bir sinyaldir.

Sinyal şekillerini tanıdıktan sonra bunların pic ile nasıl okunacağına bir göz atalım isterseniz.
Öncelikle senkron bitini yakalamak gerekiyor. Bunun için öncelikle 4 clock uzunluğundaki High ve ardından 124 clock uzunluğundaki low sinyalini yakalamak gerekir.
Pic Basic de örnek vermek gerekir ise;

BAK:
IF RF_IN=0 then BAK 'RF_IN'in HIGH olmasını bekledik
Pulsin RF_IN,0,BOY 'BOY WORD tipi bir değişken olmalı
BOY sayısı PT2262 nin osilatör frekansına bağlıdır. Diyelimki PT2262 nin osc frekansı yaklaşık 6 KHz. bu durumda clock pals periyodu 6 ms. çıkar. O halde senkron biti low süresi; 124 x6=744 ms dolayında bulunur. Bu PULSIN komutunda bize 744 olarak gelecektir. Bazı program gecikmelerinide göz önüne alır isek bu yaklaşık 650-740 arasında bir değer olur sanırım.
Şimdi şayet BOY 650 den küçük ise bu bir senkron biti değil demektir. Ohalde buraya bir kontrol komutu daha ilave etmek gerekir.
IF BOY<600 then BAK
yani bit senkron biti değil ise tekrar senkron biti yakalamaya git.
Şimdi diyelimki senkron bitini yakaladık. Ohalde yaklaşık 8 clock süresi kadar bir gecikme uygular isek adres ve data bitlerinin ilk yarısının orta konumuna gelmiş oluruz. 1 clock 6 ms idi ohalde 48 ms lik bir gecikme koyalım; (40 ms daha uygun olabilir program gecikmelerinden dolayı)
Pause 48
Burada bitlerin durumunu kontrol edelim,
SIFRE-1=0:SIFre_2=0:Sifre-3=0
If RF_IN=1 then SIFRE-1.7=1
Bit'in ikinci kısmının ortasına geçmek ve orada durum kontrolü yapmak için yaklaşık 16 clok süresi gecikme uygularız. 16 x 6= 96 ms
PAUSE 96
IF RF_IN=1 then SIFRE-1.6=1
Bir sonraki adres veya data bitine geçmek için tekrar;
PAUSE 96
IF RF_IN=1 then SIFRE-1.5=1
PAUSE 96
IF RF_IN=1 then SIFRE-1.4=1
Bu şekilde devam ederek ve gerekirse bu işi bir döngü içerisinde hallederek pic de 3 adet şifre bilgisi oluştururuz. Sonuçta elimizde Sifre-1, Sifre-2 ve Sifre-3 isimli 3 adet değişken içinde PT2262 nin ayarlanmış şifre kodları bulunacaktır.

Bu işde zamanlamanın (timing) ne kadar önemli olduğunu görüyorsunuz. Basicte program gecikmeleri zamanlamada etkin rol oynayabilir ve şifrelerin yanlış okunmasına sebep olabilir. Bu nedenle gecikmelerin hesaplanan değerlerden daha az verilmesinde yarar görüyorum.
Aslında kod okuma bölümü bana kalır ise ASM ile yazılmalıdır.

ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Fixxer

:o Sorun çözülmüştür çoookk teşekürler ete hocammm
...............................