HSEROUT HSERIN

Başlatan inventor, 25 Şubat 2013, 10:54:46

inventor

Merhaba Arkadaşlar,

Hserout komutu ile ilgili bir sıkıntım var. Sorayım dedim.

Proton manualde diyorki;

Dim SectorNumber as Dword ' Sector of interest
Hserout ["SECTOR ",Dec SectorNumber,13]

Dim Dwd as Dword
Hrsout "Dwd= ", Hex6 Dwd ' Display 6 hex characters of a Dword variable


Hserin ile ilgili de şu var;

Variable is a Bit, Byte, Word, or Dword variable, that will be loaded by Hserin.

Hserout komutu ile word bilgisini tek seferde gönderebilirsiniz. Ben bunu şu şekilde test edebiliyorum;

Sonuc=17250
HSerOut [Rep $AA\5,Rep $00\5,Rep $FF\5]'uyandirma sinyali preamble
HSerOut ["~",SONUC,10,13]

Bu bilgiyi alıcı kısmında şu şekilde alıyorum;

HSerIn 5,CIK,[Wait ("~"),BILGIAL]

Buraya kadar sorun yok. Ne gönderirsem göndereyim her baud aralığında bu bilgi gidiyor. Alıcı da alıp gerekli işlemleri yapıyor. Ben bu bilginin önüne birde byte tipi bilgi koyarak göndermek istiyorum. Şu şekilde ;

Sonuc=15245
HSerOut [Rep $AA\5,Rep $00\5,Rep $FF\5]'uyandirma sinyali preamble
HSerOut ["~",135,SONUC,10,13]   

Bunu şu şekilde almak istiyorum;

kont  byte tipi
bilgial word tipi tanımlı

HSerIn 5,CIK,[Wait ("~"),KONT,BILGIAL]
   
Ancak ne benim program sadece kont bilgisini alıyor ve onunla yapılacak olanları yapıyor. Bilgial kısmını almıyor. İsiste sorun yok. Normal çalışıyor ama reelde sorun var.

Komutu kullanma şekli mi hatalı? Önce word sonra byte gidecek diye bir kuralı mı var? Word gönderiyorsan bunun yanına başka bilgi eklenmez mi demek istiyor?

Selam




OG

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

isikyasar

#2
GSM MODÜLÜ PC YE SERİ PORTTAN BAĞLIYORUM PROTEUSTA SİMULASYON DEVREDE SORUNSUZ ÇALIŞIYOR. GERÇEK DEVREDE BİR TÜRLÜ ÇALIŞTIRAMADIM.
Bağlantılarda hiç bir sorun yok.
SORUN NERDEN KAYNAKLANIYOR OLABİLİR.??????
-----------------------------------------------------------------------------------------------------------------------------------------------
Device 18F452
Xtal 4


Declare LCD_DTPin = PORTB.4
Declare LCD_ENPin = PORTB.3
Declare LCD_RSPin = PORTB.2

Hserial_Baud = 9600      
Hserial_RCSTA = %10010000       
Hserial_TXSTA = %00100100     
Hserial_Clear = On      
Hserial_SPBRG= 25                  
Declare SERIAL_DATA 8   

           
DelayMS 100
'---------------------------BASLA------------------------------------------   
basla:

DelayMS 100
Print Cls,"HAZIR"
HSerOut ["AT",13]                                         
HSerIn 3000,sms,[Wait("OK")]
     
Print At 2,1,"baglanti kuruyorum"
DelayMS 5000
Print Cls

HSerOut ["AT+CMGF=1",13]
HSerIn 3000,sms,[Wait("OK")]
DelayMS 100
Print At 2,1,"mesajlar bolumune gidiyorum"
DelayMS 5000
Print Cls

HSerOut ["AT+CMEE=1",13]
HSerIn 3000,sms,[Wait("OK")]
DelayMS 100
Print At 2,1,"mesajlari aktif ediyorum"
DelayMS 5000
Print Cls

GoTo basla
'-------------------------------------------------------

  sms:
  Print Cls
  Print At 1,8,"BASLA - HATA"
  DelayMS 500
   GoTo basla
  Return

--------------------------------------------------------------------------------------------------------------------
Aklıma farklı bişey geldi ve denedim.

1- Yaptığım devreyi max 232 ile pc ye bağladım. proteustaki VIRTUAL TERMINAL ile gelen veriyi görmek istedim. veri sorunsuz olarak geliyor.
2- GSM modülü pc ye bağladım ve proteustaki sanal devre ile her şekilde sorunsuz çalışıyor.
3-Gerçek devreyi max 232 ile PC ye bağladım proteusta hazırladığım, aynı GSM MODUL gibi veri geldiğinde cevap gönderecek şekilde sanal devre kurdum. Her ikiside çalışıyor.

İşin enteresan yanı gerçek devreyi GSM MODUL'e bağladığımda neden çalışmaz. Bu konuda fikri olan varmı.

isikyasar

#3
9 pin D-type (RS-232 Interface)
Pin Function
1 DCD
2 TXD
3 RXD
4 DTR
5 GND
6 DSR
7 RTS
8 CTS
9 RI

GSM MODUL ün dökümanındaki bağlantılar.
BİLGİSAYAR İLE GSM MODULÜN SADECE RX-TX BAĞLANTISINI YAPTIM OLMADI. ŞASE BAĞLADIM YİNE OLMADI. SANIRIM RX-TX HARİCİNDEKİ BAĞLANTILARIN DA OLMASI GEREKİYOR.
18F452 İLE TX-RX HARİCİNDEKİ ÇIKIŞLARI NASIL YAPACAĞIM.??

Maxim

öncelikle işlemci için kullandığın config satırınıda yazarmısın?

tüm tanımlamaların başına declare yazmalısın
Declare Hserial_Baud=9600
Declare Hserial_Clear=On

birde böyle bir tanımlama varmı?
Declare SERIAL_DATA 8

isikyasar

18f452 yi  max232 üzerinden seri kablo ile pc ye bağlıyorum. hyper terminal den veriyi okuyabiliyorum sorunsuz bir şekilde. proteus ta bir devre yaptım, gerçek devreden gelene cevap vermesi için.

Örneğin,
Gerçek devrede --------------------------------------------------/--------------------   Proteustaki devrede
                                                                                       /
HSerOut ["AT",13]        ' AT komutunu gönderme               /                           HSerIn 3000,sms,[Wait("AT")]
HSerIn 3000,sms,[Wait("OK")]                                         /                            HSerOut 3000,sms,[Wait("OK")]


Gerçek devre ile proteus smulasyon devre haberleşme örneğinde, çalışmasında hiçbir sorun yok. gayet güzel haberleşiyor. Verici gönderiyor- Alıcı alıyor ve onay gönderiyor-Verici tekrar onaylıyor.

GSM MODULUN TX GİRİŞİNE LED BAĞLIYORUM YANIYOR. PİC İN DE TX GİRİŞİNE LED BAĞLIYORUM YANIYOR. PİC İLE GSM MODUL ARASINA MAX232 KOYMAK ŞARTMI?

Murat Mert

Alıntı yapılan: isikyasar - 30 Ekim 2013, 10:59:20
GSM MODULUN TX GİRİŞİNE LED BAĞLIYORUM YANIYOR. PİC İN DE TX GİRİŞİNE LED BAĞLIYORUM YANIYOR. PİC İLE GSM MODUL ARASINA MAX232 KOYMAK ŞARTMI?

Modeminde max232 varsa pic devrene de max232 bağlamak zorundasın. Sonuçta 2 ayrı devre demektir o zaman.
mert07

isikyasar

#7
Modemi, RS kablo ile direk bilgisayara bağlıyorum. Bu şekilde çalışıyor.
- PC nin seri portunda max232 varmı? varsa modemde de max 232 vardır demektir. PİC e de max 232 bağlamak gerekir haliyle.


1- PC nin tx çıkışına led bağlıyorum, her veri geldiğinde yanıyor.
2- Modemin tx çıkışına led bağlıyorum direk yanıyor

isikyasar

PC den gelen 232 kablonun MODEM e giren kısmını açtım. PC den gelen soketin 2 numaralı (RX)  uca led bağladım. Hyper terminali aktif ettiğimde led sönüyor ve sadece modem den cevap geldiğinde yanıyor. Hyper Terminali kapattığımda led tekrar yanmaya başlıyor. Yani haberleşme aktif hale geldiğinde led sönüyor.
Uğraşa uğraşa buraya kadar geldim. Bu durumu nasıl çözebilirim.

Murat Mert


S.A.

pic232 TX---------->modem232 RX
pic232 Rx<----------modem232 TX
pic GND--------------modem GND

bunları uyguladınızmı?
mert07

isikyasar

evet uyguladım. bağlantılarda sorun yok.
PC nin seri portundaki RX-TX-GND yi, yani 2-3-5 pinlerini Modemin 2-3-5 pinlerine doğrudan kablo ile bağladığımda çalışmıyor. Hyper Terminalde çalışmıyor.
PC nin 2-3-5 pinlerinin haricin deki pinlerden sanırım bir tetikleme (başlatma) sinyali gidiyor.

Modemin 2 nolu pinine led bağlıyorum, ve aynı zamanda pc ye de bağlı rs232 kablosu ile. Hyper Terminali başlatmadan önce 2 nolu pine bağlı led sürekli olarak yanıyor. Hyper terminali başlattığımda 2 nolu pindeki led sönüyor. Bu led södüğünde veri alış verişi aktif hale geliyor. Sadece veri geçerken yanıyor.

isikyasar

#11
modemin  port girişi
Pin Function
1 DCD
2 TXD
3 RXD
4 DTR
5 GND
6 DSR
7 RTS
8 CTS
9 RI

PC nin port girişi
1  DCD
2  RXD
3  TXD
4  DTR
5  GND
6  DSR
7  RTS
8  CTS
9  RI

pc nin 232 çıkışındaki RX-TX ve GND haricideki diğer çıkışları pic in çıkışına nasıl adapte edebilirim. RS 232 dönüştürücümde çıkışta sadece RX-TX ve GND çıkışı var. Diğer kısımlar hakkında hiçbir fikrim yok.

OG

Kros kablo kullanman gerek
2 <-----> 3
3 <-----> 2
5 <-----> 5

şeklinde.


Eğer modem RTS, CTS gibi pinleri kullanıyorsa (el sıkışmalı ise), PIC'e de aynı işlevleri ürettirmen gerek, ve kablonın diğre uçları da bağlanması gerek ama el sıkışmalı çalıştığını sanmıyorum.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

isikyasar

modemin içindeki TTL to 232 entegresini yakmayı başardım. ADM207

RTS, CTS gibi pinleri sanırım kullanıyor. Bu konuda biraz araştırma yapıp, takıldığım nokta olursa veya ilerleme olursa burda paylaşırım.

isikyasar

benim gsm modülün TTL-232 dönüştürücü entegresi bozukmuş. o yüzden haberleşmede sorun oluyormuş. Değiştirince sorun düzeldi.