NRF24L01 register işleyiş .

Başlatan rf-man, 22 Ocak 2015, 16:57:48

rf-man

SELAM HERKESE

Bu foruma yeni kayıt oldum ve RF alıcı vericilerle uğraşıyorum . sorum şu .
NRF24L01 entegresi ile çalışıyorum . Büyük bir problemim var bu IC ile , bu IC ile çalışan vardır belki diye bir ihtimal yinede soracağım .

Veri alıp almadığımı kontrol etmek istiyorum ve sadece veri geldiğinde fifo'ları okumak istiyorum ama ilk verinin gelip gelmediğini check edebileceğim bir kayıtçı var mı varsa nasıl bunu kullanabilirim ?

çok saolun

Burak

Aramıza hoşgeldin , NRF'ci olduğun içinde ikinci bir defa hoşgeldin diyim . Şansına bu RF entegrenin kataloğunu yalamış yutmuş birisi olarak şu şekilde anlatayım ;

Status ($07) kayıtçısını incele , orada RX_DR bitini kontrol et sürekli olarak ... Ama eklemek zorundayım unutmadan , bu bit zaman zaman kendiliğinden de set olabiliyo . Kendi kendiliğinden lafını şu şekilde açıklayayım : RF dalga çalışma frekansı bu entegrede 2.4 - 2.5 aralığında biliyosun ve bu dalga frekanslarına maruz kalmak artık ev ortamında iş ortamında sokakta heryerde mümkün , çünkü smartphone'larımızın wifi modülleri laptop'larımızın vs vs dalgalarının içinde yüzüyoruz aslında ... Bu yüzden bu parazitler sürekli RX_DR'ı rahatız edip set etmeye çalışacak. Bu yüzden şu önerilerimi göz ardı etme ..

Adres seçimini mümkünse 5 byte'lık kullan . 2 byte'lık CRC'de kullan . Bu arada ;

When a valid packet is received (matching address and correct CRC), the payload is stored in the 
RX-FIFO, and the RX_DRbit in STATUSregister is set high.


Denilmiş ,

Sıralamada uygun adres ve CRC koduna uyan bir paketten sonra aktarılmak istenen bilgi yükü fifoya aktarılır ve ardından RX_DR set edilir diyo ama ben bununla aylarca uğraştım , kontrolsüz bir set olmaya müsaitlik durumu var bu bit'te , uygun frekansa sahip bi paket geldiği zaman bile demodulasyonu beklemeden set olduğunu gördüm . O yüzden bilgi yükünde mümkünse 2 byte'lık bilgiyi kişisel ekstra adres bilgisi olarak kullan .

Deneyip sonucu buraya yazarsın ;)

Burak


Ω Gens Una Sumus Ω

rf-man

Burak bey teşekkürler sizin daha önceki yazınızı okudum . Bu entegrede uzun bir yol katettiğinizi gördüm .Sizin gibi birisiyle bilgi alışverişi yapmak çok güzel .

yazdıklarınızı okuduktan sonra status registerini okudum . ama ilk bilgi gelişinden sonra bir daha temizleyemiyorum bu biti . registeri tamamen temizliyorum fifoları flush ediyorum ama yinede temizlenmiyo çıldıracağım . nasıl olacak acaba ?

Burak

Alıntı YapRX_DR R/W Data Ready RX FIFO interrupt. Asserted when
new data arrives RX FIFO

Write 1 to clear bit.

:D Dikkatini çektimi bilmiyorum ama Write 1 to clear bit olarak ifade edilmiş .
Temizlemek için bu bite "lojik 1" yazmak gerekiyor ;)

Nedenini merak ediyorsan diye söyleyeyim çünkü bende de merak uyandırmıştı . NRF24L01'in tümdevre yapısına ulaşmıştım bi forum sitesinden , bu pinler IRQ bacağına open drain fet'ler ile bağlanmışlar o yüzden tersinir çalışmaktalar . Sadece bu kadarını bilmen yeterli bence ...

Umarım faydalı olmuştur .......

Burak
Ω Gens Una Sumus Ω

Burak

#4
İyi okumak gerek datasheet'i gerçekten çünkü kullanımı gerçekten çok zor bir entegre . Çok fazla kayıtçısı var .

Burak
Ω Gens Una Sumus Ω

rf-man

Burak bey teşekkürler , çalıştı çok işime yaradı . verdiğiniz bilgiler içinde teşekkürler .

Powered by EzPortal