Y

Nerede Hata Yapıyorum

Başlatan yfa, 15 Eylül 2011, 16:48:06

yfa

Selamlar. Daha önce seri port servo kontrolü için  Ete hocamın son halini verdiği programa ait devre şemasını çizdim ve devreyi sorunsuz şekilde bastık. 5 V luk kaynak ve rs232 bağlantısını yaptıktan sonra gönderdiğim komutlar çalışmadı. Bunun sebebi ne olabilir? Similasyonda gayet güzel işleyen devre neden çalışmamış olabilir. Ekte ares, isis ve pic basic dosyaları mevcut. İnceleyip sorunun nerede olduğu hakkında bilgi verirmisiniz.

Teşekkür Ederim.

ete

Bence sorun RS232 den gelen bilgideki kusurdan kaynaklanıyordur.
Ayrıca sigorta ayarlarına aşağıdaki satırlarıda ilave edin.
@ DEVICE pic16F876, XT_OSC
DEFINE OSC 4


RS232 entegresinde giriş çıkılarda yanlış bana kalırsa. 9 pin seri portun 2 nolu pini  RX pini dir. Bu pin Max232 nin T2Out pinine bağlanması gerekir. Mantık şöyledir. Pic TX ucu Seri portun RX ucuna bağlanmalıdır. Seri portun TX ucu ise Pic in RX ucuna bağlanmalıdır.
Şİmdi bu mantığa göre yeniden bakarsak;
- Pic TX ucu , Max232 nin T2in ucuna girmiş bu doğru. O halde T2out ucuda Seri port RX ucuna gitmelidir. Yani 2 nolu pine bağlanmalıdır. Sizin şemada bu 3 nolu pine bağlanmış.
- Pic RX ucu Max232 nin R2out pinine bağlanmalıdır buda doğru
- Max232 nin R2in ucu ise Seri port TX ucuna yani 3 nolşu pine bağlanmalıdır. Bu yanlış.
Bu dediklerimi bir düzeltin ve programa ilaveleri de yaptıktan sonra yeniden deneyin bakalım sonuç ne çıkacak.
Ayrıca seri portdan nasıl bilgi yolladığınızda açıklarsanız sevinirim.
Ete


3mZ

ETE
Arkadaşın baskı devresine baktınızmı

ete

#3
Baktım,
2 nolu Seri port pini Max232 nin 7 nolu pinine,
3 nolu seri port pini Max232nin 8  nolu pinine bağlanması gerek.
Onlar tersini yapmışlar. 2==>8 e bağlanmış,  3==>7 ye bağlanmış. Yanlış bence.

Üstelik 5 nolu seri port pini GND dir ve boşta bırakılmış. Bu ucunda sistem GND sne bağlanması gerekir. Belkide 5 nolu pin power plane şeklinde bağlıdır ama çok iyi anlaşılmıyor.

Ete

                                   

yfa

Ete Hocam Programa gerekli eklemeleri yazdım ve dediğiniz şekilde rs232 bağlantılarını düzenledim. Topraklama işine gelince boşta ki bütün pinler topraklı oluyor. Mavi zemin topraklı. Daha belirgin görülmesi için 5 nolu rs232 pinini ortaya toprakladım.  16f876 da 20. pin Vdd bağlantısı sorun teşkil edermi (nedir bu Vss ve Vdd olayı) ve dikkatimi çekti ilk gönderdiğim ares dosyasında picte 7 numaralı pin topraklanmamıştı bunuda toprakladım (22pf lık kondansatör ile). Ayrıca giriş voltajını bütün devreye dirençten geçirdikten sonra verdim (direncin kısa devre ihtimalini düşünerek).
Bu arada ben aresin yeşil oklarını hep kendi içerisinde ki datalara göre gösterdiğini düşünmüştüm. Demekki isise göre belirliyor. Çünkü rs232 yi isiste yanlış bağladık.

Alıntı yapılan: ete - 15 Eylül 2011, 19:58:52
Ayrıca seri portdan nasıl bilgi yolladığınızda açıklarsanız sevinirim.

Seri porta komut gönderme işine gelince; Labview de hyper terminal oluşturuyorum seriport bağlantı ayarlarını tanımlıyorum (9600 baund vs.) ve string olarak komutlar gönderip komutların gönderilmesini programın işlevine göre bir fonksiyona bağlıyorum. Programda 4 cihaz kontrol ediliyor(sıcaklık ünitesi, ışık ünitesi, elektrik ünitesi ve bu devre).  Labview servonun döngüde ki sırası gelince servoyu açıyor (yani 180 dereceye geliyor) bu sırada diğer cihazlar üzerinden ölçümleri alıyor ve işi bitince servoyu kapatıyor (90 dereceye). Bu işlem, verdiğimiz input aralığı boyunca devam ediyor. Labview ile ilgiliyseniz burada paylaşabilirim.

Son haline ekte bakabilirsiniz. Öğlenden sonra basmayı düşünüyorum. Basmadan önce tekrar bakacağım buraya inceleyip bilgi veren varsa gözden bir şey kaçmaması için.

ete

PCB de yine yanlışlar var. Bir defa malzeme ile birlikte versen izlemek daha kolay olacaktı. Bir dahaki sefere malzemeleride göster lütfen.
Hataları sırası ile veriyorum.
1. 876 nın 7 nolu pini değil 8 nolu pini (VSS) GND ye bağlanacaktır. 7 nolu pini boş bırak.
2. 876 nın 1 nolu pinini direk +5V ta bağlama arada 4K7 direnç olsun.
3. 876 nın kristal kondansatörlerini çizmemişsin. Malzeme göstermediğin için ayaklarının olmayışından anlıyorum. Her bir kristal bacağı 22pf kondansatörler GND ye bağlanacaktır.
4.  Max232 nin 2 nolu bacağını direk +5V ta bağlamışsın. Halbuki 2 nolu bacağa 1Mf kondanstörün eksi ucunu bağlayacaksın. Kondansatörün diğer ucu +5V ta bağlanacaktır.
5. Max232 nin 16 nolu pini VCC yani +5V besleme girişidir. Sende hiç bir şey bağlı değil. Oraya +5V besleme bağlaman gerekir.
6. Max232 nin 15 nolu pini ise GND dir ve direk GND ye bağlamak gerekir. Sende boş gözüküyor.
7. Hem pic besleme bacaklarına hemde Max232 besleme bacaklarına mutlaka seramik tip 100nf kondansatör bağlayınız.
8. Besleme bacaklarına ayrıca 100Mf kondansatör bağlayınız.

Şimdilik gördüklerim bunlar. Başka bir göz farklı şeyler görebilir.
Ete


yfa

Kusura  bakmayın ancak cevap verebildim. Devreye elemanları ekledim ve dediğiniz düzenlemeleri yaptım. Son hali ekte. Bazı kısımlar çok yakın diye uyarı veriyor tabi basarken bu haliyle değil aralarını açarak basacağım eğer devre doğruysa.

ete

Yfa,
Çalışma azmini kırmak istemem ama hiç bir dediğimi yapmamışsın.
Bu şekilde olmazki? Bu sefer ne hata olduğunuda söylemeyeceğim.
Ama devren baştan sona hatalarla dolu. Bu şekilde çalışması imkansız.
Devreni enbaştan ele al ve şemaya bakarak bütün bağlantıları yeniden yap.
Yukarıda açıkladıklarımı şema ile birleştir ve onlarıda çalışmana dahil et lütfen.
Yine dayanamayım bir iki tanesini en azından neymiş bu hatalar demeyesin diye söylüyorum.
- Ne demişim Pic 8 nolu bacağı GND ye bağlanacak demişim sen ne yapmışsın o bacağa kondansatör bağlamışsın.
- Pic 1 nolu pin için direnç üzerinden +5V ta bğla demişim sen araya yine kondansatör koymuşsun. Nerden çıkıyor bu ondansatör koyma merakı anlamadım?
- Max232 16 nolu bacağına +5V bağlanacak demişim ama sen ne yapmışsın yine bir kondansatör bağlamışsın.
Başkalarıda var artık gerisini sen bul ve düzelt.

Ete

Powered by EzPortal