avatar_elektro77

TRANSRECEIVER KULLANIMI

Başlatan elektro77, 10 Aralık 2016, 00:52:32

elektro77

#15
Hocam henüz gerçek devre üzerinde denemedim. Sadece simülasyonda rx ve tx i direk bağlantı yaparak deniyorum.
Simülasyonda hız ayarı sorun oluyormu.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Simulasyonda deneme yaptığını bilmiyordum. Benide meraklandırdın. Önceki sayfadan programlarını aldım. Biri PBP da yazılmış diğeri Proton da bunuda anlamadım ya nedendir.? Her neyse ikisinide PBP ya göre düzenledim.
Vericide 1 ve 101 verisi yollanıyor ama alıcıda 33 bekleniyor buda garip onuda düzelttim.
Denemede sorunsuz çalışıyor öylede olması gerekir. Hiç de senin dediğin gibi değil.
Dosyalar ilişiktedir.
Ete


elektro77

#17
Teşekkürler hocam. Yarın deneyeceğim.
Proton kullanma amacımı ilk sayfada yazmıştım. Amacım grafiklcd kullanım kolaylığıdır. Çünki pic basic proda grafik lcd işini kafam almadı. Protonda yazıp çalıştırdığım ve bir grafik lcd de firma logomu bastığım yazılımım var.  Bu usart işini çözdüğümde iki yazılımı uygun şekilde birleştirmeye çalışacağım. Yada vericiyide protana uyarlayacağım. İki dildede tarzanca bişeyler yapmaya çalışıyorum işte.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

Hocam Simülasyon çalışıyor fakat gerçekte çalışmıyor.
Gerçekte Dorji drf 4432 kullandım.Vericideki tuşlara bastığımda Modüllerin üzerindeki ledler vericide sarı alıcıda da mavi olmak üzere çalışıyor. Fakat  bilgiyi ya vericide vermiyor yada alıcıda almıyor.
Dorji konfigürasyon ayarlarından olabilir mi? Ayar kitim olmadığı için bunu bilemiyorum.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Modül bozuktur. Yada modül data iyi okumak gerekir.
Ete

elektro77

#20
Dorji konfigürasyon ayar kitini nerden alabilirim acaba? Direnc.net te yok bildiğim kadarıyla
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ta3usl

Ayar seti gibi ekstra bir modül olacağını sanmıyorum. Belki de yanılıyor olabilirim. Bilgisayar üzerinden seri port ile komut setini kullanıp ayar yapılabilen bilgisayar programı olabilir diye düşünüyorum. Hatta , dorji modüllerinin kullandığı komut setini bilirsen normal bir seri port programı ile sen bile yapabilirsin diye tahmin ediyorum. Datasheet'te sayfa 5 te bazı açıklamalar var.

Elinde Usb / TTL dönüştürücü varsa bilgisayar üzerinden test et. verileri görebiliyor musun?

elektro77

İstenen Baud oranı = Fosc / (64 (X + 1))
9600 = 16000000 /(64 (X + 1))
X = [25.042]= 25
Hesaplanan Baud oranı=16000000 / (64 (25 + 1))
= 9615

bu örneğe göre
8 mhz 9600 baudda
spbrg kaç olmalı?
ben 76.8 buldum doğrumudur acaba. Yardımcı olurmusunuz.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

PicMultiCalc bu soruyu aşağıdaki şekilde cevaplıyor,
DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 20h ' Enable transmit, BRGH = 0
DEFINE HSER_SPBRG 12  ' 9600 Baud @ 8MHz, 0,16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically

ete

elektro77

#24


bu tablodaki 51 rakamı ne işe yarar.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

picmulticalc hesap tablosunu ekleyecektim ama beceremedim.
Spbrg 12
birde spbrg 51 ibaresi var. Ne işe yarar.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

#26
ETE hocam
Tüm yazılanları okudum ama her yerde başka konular içinde geçmiş bu nedenle karışık.
Şu usart tanımlamasında hem vericide hemde alıcıda ne ne işe yarar sizin anlatım tarzınızla anlatabilirmisiniz. Kafamda oturtamadığım şeyler var.
DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 20h ' Enable transmit, BRGH = 0
DEFINE HSER_SPBRG 12  ' 9600 Baud @ 8MHz, 0,16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

#27
Çünkü ne yaparsam yapayım
vericide
DEFINE OSC 4

DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
DEFINE HSER_SPBRG 25  ' 9600 Baud @ 4MHz, 0,16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically

Alıcıda
Xtal = 8
Declare HSER_RCSTA 90h ' Enable serial port & continuous receive
Declare HSER_TXSTA 20h ' Enable transmit, BRGH = 0
Declare HSER_SPBRG 12  ' 9600 Baud @ 8MHz, 0,16%
Declare HSER_CLROERR 1 ' Clear overflow automatically

VEYA
DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 20h ' Enable transmit, BRGH = 0
DEFINE HSER_SPBRG 12  ' 9600 Baud @ 8MHz, 0,16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically

yaptığım sürece ne simülasyon nede gerçekte çalışmıyor.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

Alıntı yapılan: elektro77 - 14 Aralık 2016, 18:25:02
Çünkü ne yaparsam yapayım
vericide
DEFINE OSC 4

DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
DEFINE HSER_SPBRG 25  ' 9600 Baud @ 4MHz, 0,16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically

Alıcıda
Xtal = 8
Declare HSER_RCSTA 90h ' Enable serial port & continuous receive
Declare HSER_TXSTA 20h ' Enable transmit, BRGH = 0
Declare HSER_SPBRG 12  ' 9600 Baud @ 8MHz, 0,16%
Declare HSER_CLROERR 1 ' Clear overflow automatically

VEYA
DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 20h ' Enable transmit, BRGH = 0
DEFINE HSER_SPBRG 12  ' 9600 Baud @ 8MHz, 0,16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically

yaptığım sürece ne simülasyon nede gerçekte çalışmıyor.

Fakat vericideki 24h ı 20h yaparsan simülasyon çalışıyor.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

16F628A nın data sheet'ini aç ve RCSTA registerini bul (Sayfa 72)
Bu registerin 7 nolu biti, Serşal Port Anable biti dir. Enable yaniş aktif edilmesi için bu bit=1 olmalı. O halde;
RCSTA=%1xxxxxxx ddik ve devam ediyoruz
Bu registerin 6 nolu biti 9 bit receive enable biti biz 8 bit alım yapacağız bu nedenle bu bit=0 olmalı. O halde;
RCSTA=%10xxxxxx
Bu registerin 5 nolu biti, Single receive enable biti demiş ama asenkron haberleşmede bu biti ihmal et demiş.
RCSTA=%100xxxxx  bu biti ihmal etmiş olduk.
Bu registerin 4 nolu biti, Sürekli alma enable biti dir .Bizim istediğimizde bu olduğu için 1 veriyoruz.
RCSTA=%1001xxxx oldu.
Bu registerin 3 nolu biti, ve diğerleri bizi pek ilgilendirmiyor onların hepsini sıfır olarak seçiyoruz.
O halde RCSTA=%10010000 oldu bunun HEX karşılığı $90 dır zaten ayarda bu değer verilmiş.

Gelelim TXSTA registerine ,
Bu registerin 7 nolu biti  CLK source select biti asenkron modda dikkate almayın diyor sıfır veriyoruz.
TXSTA=%0xxxxxxx
BU registerin 6 nolu biti 9 bit transmit enable biti olup biz 8 bit çalışacağız sıfır veriyoruz. TXSTA=%00xxxxxx
Bu registerin 5 nolu biti, Transmit enable biti olup bize gerekli olduğu için 1 veriyoruz. TXSTA=%001xxxxx
Bu registerin 4 nolu biti, Usart Mode select biti 0=Asenkron olduğu için sıfır veriyoruz. TXSTA=%0010xxxx
Bu registerin 3 nolu biti, otomatikman sıfır imiş. TXSTA=%00100xxx
Bu registerin 2 nolu biti,  HIGH Baud Select Biti Yani BRGH , 1=HIGH SPEED , 0=LOW SPEED  Düşük hızlarda bile HIGH SPEED seçin diyor data sheet. O nedenle 1 aldık TXSTA=%001001xx
Kalan iki biti de sıfır alıyoruz dolayısıyla TXSTA=%00100100 elde edilmiş oluyor bunun Hex karşılığı $24 dür.

SPBRG hesabına gelince. Yine data sheet şu formülü vermiş  , BRGH=0 ise ,
İstenen Baud Rate (9600)=Fosc (yani 4000000)/64*(X+1)
BRGH=1 ise ,İstenen Baud Rate (9600)=Fosc (yani 4000000)/16*(X+1)
4 Mhz (4.000.000 Hz) için hesabı yapalım. İstenen BR=9600 olduğuna göre ve BRGH=1 olduğundan;
9600=(4000000)/16*(X+1) = 250.000 /(X+1),    9600 * (X+1)=250.000 ve X=(250.000-9600)/9600 =25 olarak hesaplanır.

Vericideki 24h yi 20 yapınca otomatikman BRGH=0 almış oluyorsun. Bu durumda SPBRG hesabıda ona göre yapılmalı yalnızca onu değiştirmekle olamazki. Oluyorsa senin frekans ayarlarında bir sorun var demektir. Simulasyonda da çalışmıyor demen de garşip. Çalıştığını sana gösterdim. Akıl edip te simulasyonu buraya koysan bizde bakma fırsatı bulabilirdik değilmi?

Ete

Powered by EzPortal