PIC 16F877A MAX 232 Seri iletişim hata

Başlatan falgorn, 29 Şubat 2012, 23:08:09

falgorn

Herkese selam,
Ben pic ile programlamaya yeni başladım. deneye deneye öğrenmeye çalışıyorum.
Fakat 4 aydır işlemciden bilgisayara herhangi bir sey gönderemedim. asıl amacım bilgisayardan işlemciye bilgi gönderip birşeyler yapmak.
yanlış bile olsa herhangi bir hareket yok.
sorularım şu şekilde
1.sadece laptop'um olduğundan dolayı sadece bir DB9 bağlantısı var ve bunun rs232 seri bağlantı için yeterli olduğunu düşünüyorum. Sanal com port diye birsey varmıdır.
2.voltmetre ile teker teker kontrol ettim kablo bağlantıları dişiden erkeğe tam ters bağlanmış bende rs 232 ye giden ucu tersmi bağlamalıyım
3. kullandığım kod aşağıda derlerken bir hata almıyorum (picbasic) acaba yanlış birşeymi yapıyorum

INCLUDE "MODEDEFS.BAS"

OPTION_REG.7=0
DEFINE OSC 20

DEFINE HSER_BAUD 9600   ' HSER baud rate
DEFINE HSER_SPBRG 129   ' HSER SPBRG init
DEFINE HSER_RCSTA 90h   ' HSER receive status init
DEFINE HSER_TXSTA 24h   ' HSER transmit status init high speed
DEFINE HSER_BITS 9      ' Use for 8 bits ''+ parity
DEFINE HSER_CLROERR 1   ' Automatically clear HSERIN overflow errors

TRISC=%10000000
Main:
    HSEROUT ["Nada",13,10]
    pause(1000)
GOTO Main

4. windows 7 yuklu olduğudan sadece tera term kullanabiliyorum ondaki ayarlar
port: COM1
baud rate:9600
data:8 bit
parity:none
stop:1 bit
flow control:none
data 7 bit olabiliyor
stop 2 bit olabiliyor her turlusunu denedim

5. kullandığım güç kaynağı standart bilgisayar güç kaynağı kırmızı kablodan 5,76 volt alıyorum.

6. kullandığım devre

http://img96.imageshack.us/img96/1977/circuith.jpg


7. MAX 232epe kullanıyorum 5 tane 1mf kapasitor kullandım
bağlantı şekli

http://img804.imageshack.us/img804/2638/circuit232.jpg

kapasitörü bağlarken uzun bacak + kısa bacak - olacak sekilde bağladım kısa bacakta - işareti vardı.

bütün bunlara rağmen halen herhangi bir sonuc alabilmiş değilim.

yardım...

Kabil ATICI

önce işlemcininin çalıştığından emin ol. Bunun için en basit yöntem portların birine bir LED bağlayıp bunu yakıp söndürecek bir programla test etmektir. Yapabiliyorsan 4MHz gibi bir kristalle dene derim.(ilk etapta  iç saat kaynağını kullanabilirsin.)  Sigorta ayarları ile ilgili bir konuda olabilir?

Bilgisayardan veri gönderebiliyor musun? Bunu test edebiliyor musun?  bağlantıların tamamsa max232 entegresinin işlemci tarafında bir led ile bunu gözlemleyebilirsin (seri direnci unutma)

İşlemci için atadığın baud ile bilgisayar tarafındaki baud birbirini tutmalıdır.

Yanlış hatırlamıyorsam max232 için 10 µF kondansatörler kullanılıyordu. Daha doğrusu çoğunlukla ben öğle kullandım.
ambar7

kudretuzuner

Merhaba
Vermiş olduğunuz iki jpeg arasında bağlantı farkı var.Birinci resimde TX  T1out'a bağlı görünüyor.R1İn olması lazım.İkinci resimde ise doğru bağlantı var PC ile max232 bağlantısını ikinci resime uygun olarak bağlayın.
Amatör

falgorn

Öncelikle verdiğiniz cevaplar için teşekkür ederim.

+- bağlantıları ve aynı kristal ile 2 tane ledi bağlayıp 1sn lik periyotlarla yanıp sonen proje çalıştırdım - Problem yok

ilk resimdeki RS232 baglantısı önerilenden farklı olduğundan onu önerilen şekli ile bağladım.
kullandığım kapasitörlerin özellikle aynı olması ve elektrolit olmasına özen gösterdim. elektrolit dediğim +- olan kapasitörler.
benim kafama takılan konu bir yerde okudum göründüğünün ters seklinde bağlanması gerekiyor die ama tekrar bulamadım o siteyi

sigorta ayarları nedir bilmiyorum.

program çalışırken voltmetre ile seri bağlantı kablosunun üzerinde ölçüm yaptım ve -9,5 volt ölçtüm acaba bunun bir eşik değeri varmıdır 10 veya 12 volt gibi.

baud ayarlarını 3 noktadan ayarladım birincisi spbrg 20 mhz kristal ile high speed 129 , ikincisi aygıt yöneticisinden baud rate 9600 sonra baglantı yaptığım programdan (tera term) 9600 ayarladım

(seri direnci unutma)
burda direk kablonun ucuna direncle beraber bir led mi baglayayım demek istediniz.
değilse bile güzel fikir :)

hiç veri göndermeyi denemedim ve aslında asıl yapmak istediğim bu
ama hello world tarzında birşey ile başlamak istedim.

Şimdiden teşekkür ederim