This post is also available in: English

forum-banner


Konu ve mesaj oluşturabilmek için giriş yapmanız gerekmektedir.

PIC ve RFID-RC522 ?

Sayfalar:12
  • Önceki Forum konusunda UART Haberleşme Protokolü üstünde baya durduk ve bir kaç bilgi daha öğrendim.
  • Hazır Elimde RFID varken bir uygulama yapayım dedim. Fakat SPI mi Yoksa UART mı haberleşiyor anlayamadım .

 

  • Çok yerde araştırdım. PIC ile ilgili yapılmış bir proje bulamadım. Ancak Libstock ' da bir proje buldum fakat ondanda birşey anlamadım dünya kadar tanımlama ve ne yaptığı belli olmayan bir program.

 

  • Daha sonra bir kaç yerde birşeyler okuduktan sonra Libstocktaki adamın arduino kütüphanesini MikroC ye uyarladığını düşündüm yani aslında bir kütüphane değilde direk kodun icindeki tanımlamaların kütüphane olduğunu fikrine kapıldım

 

 

Araştırma yaparken UART mı Yoksa SPI mi diye beni ikileme düşüren kısım bu diyagram oldu Modülün pin diyagramları hem SPI hem UART yani burada istenilen haberleşme protokolünde kullanılabilir gibisinden bir izlenim mi verilmiş ?

Hangi haberleşme protokolünü kullanacağımızı MODÜL anlıyor mu yoksa bizim birşey yapmamız gerekiyor mu ?

Modülü dün gece denemek icin UART bağlantısı yaptım SOFTUART yaparak modüle kart yaklaştırdığımda Modülden birşey gelecek mi diye Gelen datayı PC 'ye gönderecektim ki SOFTUART 'dan da birşey anlamadım :D Türkçe kaynak yok yada ben adam gibi araştıramıyorum.

 

Velhasıl bunu yapmak için deneme kartının üstündeki RS485 ten okuyup UARTTAN gönderim yapmayı planladım işte burada işler öyle bir karıştıki Beynim yandı diyebilirim.

 

Coğu yerde TİMER kurulmuş yani anladığım kadarı ile start data ve stop u kendileri oluşturmuş. Arduino ile calıştıktan sonra MikroC biraz yordu beni.

Ki Modülün I2C haberleşme protkolünüde desteklediğini görüyorum :D ama nasıl calışacak bu anlamadım  Googlede nasıl calıştığını  araştırdım ya bilgi yok yada üstü kapalı pekte birşey verilmemiş cünkü bu gibi modüller arduino icin yapıldığı icin hazır kütüphaneler yüzünden anlatılma girişiminde bulunmadığını düşünüyorum.

Biz bunu pic ile calıştırmak istersek ne yapmamız gerekiyor veya beraber örnek yapabilirmiyiz ?

Merhabalar

 

  • RFID konusunda daha önce bir çalışma yapmadım ancak izlenmesi gereken yol hakkında biraz bilgi vermek istiyorum.
    • RFID yada herhangi bir modül bunlar tıpkı bilgisayardaki ekran kartı gibidir bilgisayar ile kullanılabilmesi için bir driver - kütüphane gerekir
    • RFID kullanmak için 2 seçenek mevcut ya hazır kütüphane kullanacaksın yada kendin yazacaksın ki benim tercihim her zaman kendim yazmaktır. Zor olsa da doğru olan budur.
    • Neden doğrusu budur çünkü ileride her türlü her çeşit modülü nasıl kullanabileceğini bilirsin kendi özgün kodlarını fonksiyonlarını yazabilirsin . Daha gelişmiş yada kolaylaştırıcı işlemler yapabilirsin
  • Şimdi konuya dönecek olursak. Hangi modül olursa olsun ister ekran ister RFID bunun üzerindeki işlemcisi ile iletişim kurmalıyız yani RFID modülündeki işlemcinin kullanma kılavuzuna( datasheet) bakmalıyız.
  • RFID işlemcisi MFRC522 miş. kılavuza bakınca bunun 3 iletişim protokolü ile kullanılabildiğini gördüm.Yani SPI - I2C - UART ( kılavuz 109 sayfa bu arada)
  • Bu kılavuzlarda ne nedir nasıl iletişim kurar gelen veri nasıl okunması gerekir ne cevap gelirse ne kod gönderilir bunlar aşırı detaylı yazar. Bu kod yazmanın en dibidir. Yani en alt seviye donanım ile PIC haberleşmesini sağlamak ( bu PIC olur PC olur fark etmez)
  • Sana önerim bu kılavuzu okuyup anlamaya çalışman elbette başta çok karmaşık gelecektir. Ancak bu yolda kendini zorlarsan gerçekten bir şeyler yapabilirsin yoksa hazır kütüphaneler ile hele hele mikroC gibi kapalı kodlar ile ancak başkalarının yazdığı kadar bir şeyler yapıp kendini avutmuş olursun.
  • Herhangi bir protokolü de kullansan I2C - SPI  yada UART fark etmez sonuçta ne şekilde kod gönderip nasıl okuyacağını anlamak için yine bu kılavuza bakman gerekecek . Bu iletişim protokolleri sadece birer aracıdır.
  • Kılavuzu buradan indirebilirsin.

İyi Çalışmalar

Girdik Bu yola bakalım  Yapabilecekmiyim.

Hayatım'da hiç kütüphane yazmadım. nasıl yazılır edilir , diye biraz sizin konunuza göz attım. basit gibi geliyor fakat herşey göründüğü gibi cıkmıyor :D

Bakalım bu RFID üstünde durucam ve PDF yi inceliyorum gelişmeleri buraya aktarırım. :)

Merhaba

Daha öncede bağlantısını paylaşmıştım "özgür yazılım" kısmındaki tüm konular birer kütüphanedir  . Hepsini ben yazdım. Örnek olarak "SD kart" - "GLCD - SAP1024B" gibi kütüphaneler de bu şekilde bir işlemci ile haberleşmektedir. Tabi ki içerik çok farklı belki fikir vermesi açısından PORT tanımlaması vs. gibi yerlere bakabilirsin.

Ayrıca MikroC de Kütüphane Hazırlama konusunu da inceleyebilirsin.

İyi Çalışmalar

Hocam şimdi PDF inceliyorum'da.   Birşey anlayamıyorum Kafam cok karışıyor her yere gidiyor şimdi belirli adresslerde UART İLE ilgili  registirlar var ben uartı acıp adresi gönderip öylede bunu Uart'a cekebilirmiyim ? Kesme bayrakları gibi bir şeyler anlatıyor okuma yapınca ne olacağı filan okuması icin kurmak gerektiğini ama ingilizce beni aşırı zorluyor.

Şu kişiden alıntılanmıştır: Furkan KELEŞOĞLU tarhinde 14 Nisan 2018, 18:27

Hocam şimdi PDF inceliyorum'da.   Birşey anlayamıyorum Kafam cok karışıyor her yere gidiyor şimdi belirli adresslerde UART İLE ilgili  registirlar var ben uartı acıp adresi gönderip öylede bunu Uart'a cekebilirmiyim ? Kesme bayrakları gibi bir şeyler anlatıyor okuma yapınca ne olacağı filan okuması icin kurmak gerektiğini ama ingilizce beni aşırı zorluyor.

Merhaba

Zorlanman doğal şu an yaptığın "gerçek yazılımcılık" oluyor.

Acele etmeden incele ilk olarak genel bir anlatım yapmış sonrasında her iletişim protokolü için geçerli kuralları anlatmış.

Sonrasında tüm iletişimin nasıl olacağını anlatmış mesela iletişimde CRC16 kullanmış.

Bu tabi ki hazır kütüphaneler gibi hemen 2 fonksiyon yaz sonuç al şeklinde bir çalışma olmaz belki fikir vermek açısında GLCD kütüphanesini 13 ayda SD Kart ve FAT32 kütüphanesini 22 ayda bitirdim. Evet süreler uzun ancak şu an hem istediğim modüle kütüphane yazabiliyorum hemde GLCD , SD kart , FAT32 yada diğer tüm kütüphane yazdığım sistemler hakkında a dan z ye herşeye hakimim.

Dolayısı ile zor olması aslında doğru yolda olduğunu göstermekte . Eğer bunu aşarsan önünde koskoca bir yol açılacak.

İyi Çalışmalar

Hocam ben bunu şimdi inceledim 2 gündür bakıyorum Ama cidden Ya cok karışık yada doğru düzgün birşey anlatılmamış.

Bir Türlü anlam veremiyorum select bit leri var fakat bu modül bize ne olarak gelicek yani hangi haberleşmeden göndericez select bitlerini anlamadım birde UART olayında RX - TX ve gnd OLUR.

Burada 2 pin daha dahil etmiş onuda cözemedim ben  DTQR ve MX pinleri pinlerin üstünde böyle bir pinde yok.

Şimdi block diagramına bakınca görüyorumki hangi haberleşme protkolünden bağlanırsan bağlan istediğinden RegisterBank Bloğuna bağlanabiliyorsun.

Ama datashet bu ne cidden karışık ya ben az çok birşey anladımda tıkandım şuan. CRC yide ilk kez duydum.

Merhabalar

Şimdi biraz inceledim aslında o kadar karışık değil sakin bir şekilde irdelemek gerekiyor. Örneğin ;

UART okuma yazma yapılırken

Belirtilen TX  RFID den gelen veri  RX ise RFID e giden veri anlamında verilmiş.

Uart için bir kaç pin belirlenmiş işlevleri zaten görsel şablonda mevcut buna göre

Okuma yapılacağı zaman ;

  • RX ile RFID den okuma yapılacak adres bilgisi yollanır. PIC ten RFID e gidecek
  • Adres gönderildikten hemen sonra TX den okuma yapılırken MX ucuda lojik 1 durumdadır( bunu RFID ayarlıyor)
  • DTRQ ise sıfır konumundadır tüm iletişim boyunca ( bunu RFID ayarlıyor)

Yazma Yapılacağı zaman ;

  • İlk olaraj RX ile RFID e bu sefer yazma yapılacağı belirtilmiş
  • MX ve DTRQ bitleri 1 e çekilmiş(RFID tarafında) ve TX den RFID bize yazma adresini geri gönderiyor onay şekilde .
  • Bizde ardından yazılacak veriyi gönderiyorum.

Merak edecek olursan ben nereden biliyorum hangi uç nedir ne değildir.

"10-Digital İnterface" bölümünde hangi protokolde hangi uç ne işe yarar ve renginden de bu uç giriş mi çıkış mı onu belirtir.

Bu sadece okuma ve yazma yukarıda( kılavuzun başlarında) registerlar hakkında bilgi verir bunları ince ince okumalı ve amacını anlamalısın kimisi işine yarayacak kimiside belki hiç kullanılmayacak.

Ayrıca UART yazma bölümü sonunda adres şablonu vermiştir dikkat edersen. Diyor ki ;

  • Başlangıç biti  1 ise okuma 0 ise yazma anlamına gelir
  • Sonraki RFU ise gelecek geliştirmeler için rezervedir burasını 0 yapıp geçiyorsun
  • Geri kalan ise adrestir diyor

Bu uart iletişiminde şablon oluyor senin için

Ayrıca temel sistem olarak FIFO adında data kayıt edilen bir alan var birde register alanı var. Dikkatli okuyarak hangi komut ile FIFO da okuma yada yazma  - Hangi komut ile register kontrolü yapabileceğini bulacaksın.

Bunda adım adım ilerlemelisin. Bir anda herşeyi anlayamazsın adım adım ilk olarak FIFO ve register nasıl seçiliyor sonrasında iletişim nasıl başlanıyor status registeri nedir ne işe yarar nasıl kullanılır anlamaya çalış ve Osiloskop bağlı iken anladığın şekilde komut - veri gönder ve cevap gelip gelmediğini geldiyse cevabı şablonlara göre irdele.

Ancak bu çalışma tarzı ile sonuca ulaşabilirsin.

İyi Çalışmalar

Uzun bir aradan sonra finalleride bitirmiş bulunmaktayım RFID konusunda yol kat edebilmiş değilim hiç bir şekilde ne veri okuyabildim nede başka bir şey coğu yabancı forumdada bunla ilgili sıkıntılar yaşandığını okudum.

Bugünde son denemem'de dalgınlıktan dolayı karta yüksek voltaj gidince kart bozuldu şimdi yeni bir okuyucu gördüm internette sadece UART ARABİRİM BAĞLANTISI var onu alacağım data katoloğunu deflarca okumama rağmen hiç birşey anlamadım cünkü kart bize ilk geldiğinde hangi interface 'de oda belirsiz.

Eğer yapabilen başarabilen bir arkadaş varsa paylaşırsa bizde nerde ne hata yapmışız görmüş oluruz iyi günler. :)

Merhabalar

Şu an üzerinde çalıştığım 1-2 konu kaldı bunları yapınca RFID konusuna bende bakacağım eğer başarılı olursam açık kaynak kod olarak yine diğerleri gibi sayfada yayınlayacağım.

Yeni gelişmeleri bu başlıktan devam edebiliriz.

İyi Çalışmalar

Sayfalar:12