Şimdi Ara

3 PİC İLE SERİ HABERLEŞME

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
17
Cevap
0
Favori
5.037
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • slm arkadaşlar.
    bir proje için 3 tane picle seri haberleşme yapmam gerek.picler 16f877. A,B,C olarak adlandırdığımızda,
    A pici B'ye gönderecek,B pici C'ye gönderecek.
    A'nın B ve C'ye göndermesini yaptım ama yapmam gerekeni yapamadım.
    bana yardım ederseniz çok sevinirim.



    < Bu mesaj bu kişi tarafından değiştirildi seba -- 30 Mayıs 2007; 16:46:56 >



  • Eğer usart kullanmayacaksan, yapılabilir.

    serout komutunda seri çıkış yapılacak bacak seçilmekte, çok zor değildir.(pic basic için konuşuyorum)
  • pic assemble ile yapıyorum.
    seri haberleşme olmazsa 8biti tek tekmi gönderip almak lazım.aklıma şimdilik böyle bişe geldi ama daha kolay yöntemi yokmu bu işin
  • RS 232 protokülü dışındaki başka protokollerle aynı anda onlarca pic haberleşebilir.İşinize yararsa ararştırım derin.Bayağı popüler bir protokol hatta RS 4.. bir şeydei ama şimdi aklıma gelmedi.Belki sizde biliyorsunuzdur ama bilen muhakka çıkar
  • kolay yöntemi c kullanman. usartı kullan.


    quote:

    Orjinalden alıntı: seba

    pic assemble ile yapıyorum.
    seri haberleşme olmazsa 8biti tek tekmi gönderip almak lazım.aklıma şimdilik böyle bişe geldi ama daha kolay yöntemi yokmu bu işin
  • quote:

    Orjinalden alıntı: klutch

    kolay yöntemi c kullanman. usartı kullan.


    quote:

    Orjinalden alıntı: seba

    pic assemble ile yapıyorum.
    seri haberleşme olmazsa 8biti tek tekmi gönderip almak lazım.aklıma şimdilik böyle bişe geldi ama daha kolay yöntemi yokmu bu işin



    c icin dokuman veya ornek var mı ? ozellikle picc icin ?
  • A nin B ve C ye göndermesini halletmişsiniz.A nın Bye B nin de C ye göndermesi neden sorun oldu anlayamadım...

    A nın tx pin i B nin rx pinine , B nin tx pini C nin rx pinine bağlanacak..A sadece veri gönderme, C sadece veri alma ve B ise her ikisinide yapacak...
  • Bende bir proje için 4 pic i haberleştirmeye çalışıyorum. Daha önce burada açılan bir başlıkta yazmıştım sorunumu. Ben I2C ile aynı hat üzerinden haberleştirmeyi uygun gördüm.
  • I²C ne oldu halledebildiniz mi???
  • assembly de usart veya spi ile yapılabilir .. usartla neden yapılamadığını ben de anlamadım..
    a picinin tx i b nin rx ine.. b nin tx i c nin rxine ve böyle 3 ten fazla da pic le haberleşilebilir..
    sadece assembly değil picbasic le de aynı şeyi daha rahat yapabilmeniz mümkün..
    hazır protokol kullanacaksanız hangi pic i kullanacaksanız datasheetlerini dikkatli incelemeniz gerekecek..
    usart için baudrate RCSTA TXSTA ve ilişkili SPBRG değerleri veri alımı veya iletiminde hatalarla direkt olarak ilgilidir. örnek olarak picbasicte;
    DEFINE HSER_RCSTA 90h
    DEFINE HSER_TXSTA 24h
    DEFINE HSER_BAUD 9600
    DEFINE HSER_SPBRG 25

    satırlarıyla alım gönderim ve veri hızını ayarlayıp hepsinde aynı ayarları kullanarak sorunsuz iletişim öngörülür.. bu ayarlar değişkendirler ve kullandığınız osilatör freakansına göre de değişiklik gösterir.
    assembly de bu ayarlar yine bundan çok farklı değildir..sadece daha fazla datasheetle haşırneşir olmalısınız.
    kolay gelsin




  • tmm arkadaşlar sorunu buldum.
    a,b,c piclerini bağlarken a ve b piclerini ham alıcı hem gönderici gibi bağlamışım.
    yani
    atx-brx
    arx-btx
    c'yide buna uydurmaya çalışmıştım.


    peki bütün picleri hem alma hem verme işlemini yapsa nasıl bağlanır
  • atx-brx
    arx-btx
    crx-btx..
    sanırım uydurmaya çalıştığın buydu.. fakat burdaki problemi görüyor olman lazım.. çünkü bu sefer b nin gönderdiği veri hem c ye hem de a ya gider.. buna uygun program yazman lazım.. yada güvenlik için bir byte kullanabilirsin. mesela b aldığını göndermeden önce txinden bir byte gönderir ve c ve a kime veri gideceğini anlayıp (yazdığın programla) ardından gelecek byte ı hangisinin alıp işleme koycağını bilir..
    bence tabi byte yerine herhangi bir pini daha işgal ederek piclerin usartı kapatıp kapatmaamsını yönetebilirsin.. mesela b pici bir pinini 1 yaptığında c ye gidecek (c bunu programıyla anlıyacak) 0 yaptığında a ya gidecek.. bu şekilde 3 pic te birbirine bağlı pinlerden adresleme yapabilir.. bunun i2c de daha kolay olduğunu umuyorum . tek telle herşeyin yapılması gerekiyor..bu şekilde bi kalabalıklık var ortada.
  • benim ı2c hakkında hiç bilgim yok ama bakarım en kısa zamanda.

    bu işi hallettikten sonra birşey daha denedim ama ondada sorun oldu.
    Apicinden Bye veri gönderip daha sonra B'den tekrar A'ya en sonda A'dan C'ye gönderilecek.
    piclere göndermeden önce 1byte gönderiyorum ve ona göre hangi pic işlem yapacağını biliyor.
    bence yine bağlantılarda birsorun var.
    Adan veri gönderebiliyorum ama Bden alamıyorum.
  • quote:

    Orjinalden alıntı: kerelektronik

    assembly de usart veya spi ile yapılabilir .. usartla neden yapılamadığını ben de anlamadım..
    a picinin tx i b nin rx ine.. b nin tx i c nin rxine ve böyle 3 ten fazla da pic le haberleşilebilir..
    sadece assembly değil picbasic le de aynı şeyi daha rahat yapabilmeniz mümkün..
    hazır protokol kullanacaksanız hangi pic i kullanacaksanız datasheetlerini dikkatli incelemeniz gerekecek..
    usart için baudrate RCSTA TXSTA ve ilişkili SPBRG değerleri veri alımı veya iletiminde hatalarla direkt olarak ilgilidir. örnek olarak picbasicte;
    DEFINE HSER_RCSTA 90h
    DEFINE HSER_TXSTA 24h
    DEFINE HSER_BAUD 9600
    DEFINE HSER_SPBRG 25

    satırlarıyla alım gönderim ve veri hızını ayarlayıp hepsinde aynı ayarları kullanarak sorunsuz iletişim öngörülür.. bu ayarlar değişkendirler ve kullandığınız osilatör freakansına göre de değişiklik gösterir.
    assembly de bu ayarlar yine bundan çok farklı değildir..sadece daha fazla datasheetle haşırneşir olmalısınız.
    kolay gelsin

    Ya bu son yazdığın komut ne işe yarıyor?
    DEFINE HSER_SPBRG 25?




  • eğer datsheete bakacak olursan seçtiğin osilatör frekansı ve baudrate için bu spbrg değerini de yazman gerekiyor.. eğer elinde frekans ve baudrate varsa spbrg formülünden bu atayacağın değeri bulabilirsin.. genelde en çok kullanılan baudrate ler için spbrg değerleri datasheette verilmiş... bu bir register ve sanırım veri periyodunu kontrol ediyor..
  • quote:

    Orjinalden alıntı: r2d2droids

    I²C ne oldu halledebildiniz mi???



    Dökümanları inceleyip ax çok bir mantık kurmuştum.Lakin finaller başlayınca hepsini bir kenara koydum finallerle uğraşıyorum. 1 hafta içinde tekrar başlayacağım. Arada başınız ağrıtabilirim yardım için
  • tabi...
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.