Duyuru

Çöküş
Henüz duyuru yok

İki Cihaz ile SPI Bağlantısı Kurma

Çöküş
X
 
  • Filtrele
  • Zaman
  • Göster
Hepsini Sil
yeni mesajlar

  • İki Cihaz ile SPI Bağlantısı Kurma

    Merhabalar, PCD8544 (5110 ekran) ve MFRC522 (NFC okuyucu) ile bir proje yapmak istiyorum. İki cihazı da aşağıdaki kütüphaneleri kullanarak çalıştırabiliyorum. Fakat ikisini aynı anda kullanmak istediğimde NFC kart okuma işlemini yapamıyorum. Aynı pinler kullanılarak iki tane SPI iletişimi çalıştırdığımda çakışma oluşuyor. Birkaç yöntem denedim ama çözüm bulamadım. Daha önce yapmış olan, yardımcı olan biri vardır umarım. Şimdiden teşekkürler.

    Proje kodlarım :https://github.com/sametatabasch/NFCYoklama-Deneyap

    Ekran kütüphanesi: https://github.com/mcauser/micropython-pcd8544
    NFC kütüphanesi: https://github.com/cefn/micropython-...ter/mfrc522.py

  • #2
    Kodlarda ekranın SPI arayüzü init edilmemiş (comment out yapılmış). Ayrıca aynı pinlerle iki SPI arayüzü aynı anda çalıştırmak iyi fikir değil; birini init yapmadan önce diğerini deinit yapmalısınız. En baştan hem ekranı hem de NFC’yi init yapmak yerine, ilgili class metodlarda hangisi kullanılacaksa init yapıp sonra işlem tamamlandıktan sonra deinit yapabilirsiniz.

    Yorum Yap


    • #3
      Arduino IDE'de SPI haberleşmesine sahip 2 farklı modül (NFC/RFID okuyucu ve SD kart okuyucu) kullanarak bir örnek deneyeceğiz. Sizinle de paylaşırız.

      Yorum Yap


      • #4
        Aslı sogrekci tarafından gönderilmiş Mesajı göster
        Kodlarda ekranın SPI arayüzü init edilmemiş (comment out yapılmış). Ayrıca aynı pinlerle iki SPI arayüzü aynı anda çalıştırmak iyi fikir değil; birini init yapmadan önce diğerini deinit yapmalısınız. En baştan hem ekranı hem de NFC’yi init yapmak yerine, ilgili class metodlarda hangisi kullanılacaksa init yapıp sonra işlem tamamlandıktan sonra deinit yapabilirsiniz.
        Deneme yaparken yorum satırı kalmış. Yorum yaptığımda NFC çalışıyor.
        Dediğiniz gibi init işlemlerini metod içerisine aldım. Ama olmadı.
        Kullanılacak cihazın CS pinini kullanım öncesinde 0 yaparak iletişim kurulabilir diyen kaynaklar buldum ama uygulamasını yapamadım.
        https://randomnerdtutorials.com/esp3...ation-arduino/ bu adreste güzel bir anlatım var. Deneyap üzerinde HSPI ve VSPI 'yı python ile nasıl kullanacaımı çözemedim.

        Yorum Yap


        • #5
          Kodlara tekrar baktım, her iki cihaz için de CS pinleri ayrı ayrı belirtilmesi gerekiyor (https://github.com/micropython/micropython/issues/6340). Kodlarda sadece LCD için cs pini tanımlanmış, NFC için de tanımlamak gerekiyor sanırım.

          Yorum Yap


          • #6
            Mosi ve miso pinlerinin sadece bir tane olduğunu düşünüyordum. Tüm dijital pinler bu bağlantılar için kullanılaibiliyormuş. Pin numaralarını değiştirdim. Bu şekilde çalışması gerektiğini düşünüyorum. Ama çalışmadı. Donanımsal bir sorun olabilir, ama arduino ile çalıştırdığımda NFC çalışıyor.

            Aslı sogrekci tarafından gönderilmiş Mesajı göster
            Kodlara tekrar baktım, her iki cihaz için de CS pinleri ayrı ayrı belirtilmesi gerekiyor (https://github.com/micropython/micropython/issues/6340). Kodlarda sadece LCD için cs pini tanımlanmış, NFC için de tanımlamak gerekiyor sanırım.
            İkisi içinde CS pini tanımlanmış. NFC pini için ayrı bir değişken eklemedim sadece. NFC cs pini deneyap.SDA

            Yorum Yap


            • #7
              Aslı sametatabasch tarafından gönderilmiş Mesajı göster
              Mosi ve miso pinlerinin sadece bir tane olduğunu düşünüyordum. Tüm dijital pinler bu bağlantılar için kullanılaibiliyormuş. Pin numaralarını değiştirdim. Bu şekilde çalışması gerektiğini düşünüyorum. Ama çalışmadı. Donanımsal bir sorun olabilir, ama arduino ile çalıştırdığımda NFC çalışıyor.



              İkisi içinde CS pini tanımlanmış. NFC pini için ayrı bir değişken eklemedim sadece. NFC cs pini deneyap.SDA
              Evet şimdi farkettim, zaten her iki cihazı ayrı ayrı kullanabiliyorsan sorun olmaması gerekirdi.

              Her işlemin sonucunu (okunan sensör değerleri, yazılanlar, vs..) konsola yazdırıp incelemek gerekiyor, hangi bileşen hangi işlemde okuyamıyor, yazamıyor veya başlatılamıyorsa tespit etmek lazım.

              Bir de aklıma gelen bişey var, ESP32 ile SD kart okurken yaşadığım bir problem şöyleydi: mesela SD kart hata verdiğinde deinit() ve tekrar init() yapmak istediğinizde işe yaramıyordu, MOSI/MISO pinlerinin bağlantısının kesilmesi ve tekrar bağlanması gerekiyordu. Bunun için machine.reset() yapmak zorunda kalıyordum. Bilmiyorum sizin sorununuzun böyle bir şeyle alakası var mı.

              Yorum Yap


              • #8
                Resmi gerçek boyutunda görmek için tıklayın.  Resmin ismi:  sheme.png Görüntüleme: 0 Büyüklüğü:  243.8 KB
                Bağlantıları bu şekilde yapıyorum. Kodlar da https://github.com/sametatabasch/NFCYoklama-Deneyap burada olduğu gibi. Ama NFC çalışmıyor. nedenini çözemedim bir türlü. NFC okuyucuyu arduinoda çalıştırabiliyorum.
                En son düzenleyen sametatabasch; 11-03-2022, 10:32 PM.

                Yorum Yap


                • #9
                  Son yaptığım güncelleme ile LCD ve NFC istediğim şekilde çalışmaya başladı. Yardımcı olan herkese teşekkürler
                  https://github.com/sametatabasch/NFC...21a8499dd67f07
                  En son düzenleyen sametatabasch; 10-19-2023, 09:34 PM.

                  Yorum Yap

                  Hazırlanıyor...
                  X