You are here

RFM22B_Radio_Modul_Vezerlese_PIC _Mikrokontrollerel

4 posts / 0 new
Last post
Lengyel Aron
Lengyel Aron picture

Sziasztok , 

Adott egy panel amelyen van egy RFM22B transceiver modul és egy PIC18F67J50 mikrokontroller. Azt szteretném ,hogy az RFM22B tranceiver modul következő regisztereit  : 0x00 , 0x02 ,0x03 , 0x04 , kiolvasni SPI buszon.

A gondom az ,hogy mindegyik regiszter esetén  a kiolvasott érték 0x00 , ami serintem biztosan nem jó. Az RFM22B transceiver modul rendelkezik egy SHDN porttal amely segítségevel bekapcsolható maga a modul ,ha ez a port alacsony szinten van.

------Ezzel kapcsolatosan szeretnék segítséget kérni ,hogy mi lehet a gond amiért nem lehet kiolvasni az említett regiszter cimekről az aktuális adatokat .-----

A fejlesztő rendszer amivel dolgozom MicroC for PIC .

Csatolom a forráskódot , Az RFM22B modul datasheet , a mikrokontroller pedig PIC18F67J50 (a datasheet meghaladja  a feltöltésnek előírt fájl méretet) .

Maga a forráskód tartamlaz SPI bus rendszert kezelő függvényt amely bit billegtetés elvű (bit-banging) és a PCB kiaklakítása miatt csak  ebben ,az ilyen jellegű bit billegtetés (bit-banging) SPI kezelés  érdekes a feladat szempontjából.

Hardveresen : 

-A modul megkapja a 3.3Volt tápfeszültséget , a SHDN port az RFM22B modulon alacsony szinten van , a GND rendben . 

-A hardveres portkiosztast ellenőriztem a PIC mikrokontroller és az RFM modul között.

Mindenkinek előre is nagyon szépen köszönöm a segítséget !

Üdv : Lengyel Jozsef  

Comments
imrus101
imrus101 picture

Szia!
Ránézésre rendben van a kód. Egy dolgot találtam: olvasásnál az R/W bitnek 0-nak kell lenni, tehát a RFM22B_ReadReg függvényben a

SPI_Transfer(addr | 0x80);
helyett
SPI_Transfer(addr & 0x7F);
kell.
Próbáld ki így.

imrus101

0

kovacsna
kovacsna picture
*

Szia!

A programban a CS az a modul nSEL lábát akarja takarni?

KN

1

Lengyel Aron
Lengyel Aron picture

Szia Igen ,

Igen , a     CS az az nSEL láb megfelelője. 

Udv : Lengyel Jozsef

0